export interface LinkControllerService {
/**
* Keep one directed link disabled for the lifetime of the current Scope.
* Overlapping acquisitions share a single physical down/up transition.
*/
readonly disable: (
from: ParticipantHandle,
to: ParticipantHandle,
) => Effect.Effect<void, NetworkError, LinkDriver | Scope.Scope>;
/** Delay every delivery on one directed link for the current Scope. */
readonly delay: (
from: ParticipantHandle,
to: ParticipantHandle,
duration: Duration.DurationInput,
) => Effect.Effect<void, NetworkError, LinkDriver | Scope.Scope>;
/** Park every delivery on one directed link for the current Scope. */
readonly hold: (
from: ParticipantHandle,
to: ParticipantHandle,
) => Effect.Effect<void, NetworkError, LinkDriver | Scope.Scope>;
/** Install one custom policy on a directed link for the current Scope. */
readonly shape: (
from: ParticipantHandle,
to: ParticipantHandle,
policy: LinkPolicy,
description: string,
) => Effect.Effect<void, NetworkError, LinkDriver | Scope.Scope>;
}