import { Chunk } from "@tsplus/stdlib/collections/Chunk/definition";
import { Cause } from "@effect/core/io/Cause/definition";
import type { SinkEndReason } from "@effect/core/stream/Stream/SinkEndReason";
export declare type HandoffSignal<E, A> = Emit<A> | Halt<E> | End;
export declare class Emit<A> {
    readonly elements: Chunk<A>;
    readonly _tag = "Emit";
    constructor(elements: Chunk<A>);
}
export declare class Halt<E> {
    readonly error: Cause<E>;
    readonly _tag = "Halt";
    constructor(error: Cause<E>);
}
export declare class End {
    readonly reason: SinkEndReason;
    readonly _tag = "End";
    constructor(reason: SinkEndReason);
}
/**
 * @tsplus type ets/Stream/HandoffSignal/Ops
 */
export interface HandoffSignalOps {
}
export declare const HandoffSignal: HandoffSignalOps;
/**
 * @tsplus static ets/Stream/HandoffSignal/Ops Emit
 * @tsplus location "@effect/core/stream/Stream/operations/_internal/HandoffSignal"
 */
export declare function emit<A>(elements: Chunk<A>): HandoffSignal<never, A>;
/**
 * @tsplus static ets/Stream/HandoffSignal/Ops Halt
 * @tsplus location "@effect/core/stream/Stream/operations/_internal/HandoffSignal"
 */
export declare function halt<E>(error: Cause<E>): HandoffSignal<E, never>;
/**
 * @tsplus static ets/Stream/HandoffSignal/Ops End
 * @tsplus location "@effect/core/stream/Stream/operations/_internal/HandoffSignal"
 */
export declare function end<C>(reason: SinkEndReason): HandoffSignal<never, never>;
//# sourceMappingURL=HandoffSignal.d.ts.map