import type * as CS from "../../../../Cause/index.js";
import type * as CK from "../../../../Collections/Immutable/Chunk/index.js";
import * as Tp from "../../../../Collections/Immutable/Tuple/index.js";
import * as M from "../../../../Managed/index.js";
import * as SK from "../../Sink/index.js";
import * as C from "../core.js";
declare const SignalTypeId: unique symbol;
declare const EmitTypeId: unique symbol;
export declare class Emit {
readonly els: CK.Chunk;
readonly _signalTypeId: typeof SignalTypeId;
readonly _typeId: typeof EmitTypeId;
constructor(els: CK.Chunk);
}
declare const HaltTypeId: unique symbol;
export declare class Halt {
readonly cause: CS.Cause;
readonly _signalTypeId: typeof SignalTypeId;
readonly _typeId: typeof HaltTypeId;
constructor(cause: CS.Cause);
}
declare const EndTypeId: unique symbol;
export declare class End {
readonly _signalTypeId: typeof SignalTypeId;
readonly _typeId: typeof EndTypeId;
}
/**
* Peels off enough material from the stream to construct a `Z` using the
* provided `Sink` and then returns both the `Z` and the rest of the
* `Stream` in a managed resource. Like all `Managed` values, the provided
* stream is valid only within the scope of `Managed`.
*/
export declare function peel_(self: C.Stream, sink: SK.Sink): M.Managed]>>;
/**
* Peels off enough material from the stream to construct a `Z` using the
* provided `Sink` and then returns both the `Z` and the rest of the
* `Stream` in a managed resource. Like all `Managed` values, the provided
* stream is valid only within the scope of `Managed`.
*
* @ets_data_first peel_
*/
export declare function peel(sink: SK.Sink): (self: C.Stream) => M.Managed]>>;
export {};
//# sourceMappingURL=peel.d.ts.map