import type * as C from "../../../Cause"
import * as A from "../../../Collections/Immutable/Chunk"
import * as T from "../../../Effect"
import * as O from "../../../Option"
import * as Q from "../../../Queue"
import * as Take from "./Take"
export declare type Pull<R, E, A> = T.Effect<R, O.Option<E>, A.Chunk<A>>
export declare function emit<A>(a: A): T.UIO<A.Chunk<A>>
export declare function emitChunk<A>(as: A.Chunk<A>): T.UIO<A.Chunk<A>>
export declare function fromQueue<E, A>(
  d: Q.Dequeue<Take.Take<E, A>>
): T.IO<O.Option<E>, A.Chunk<A>>
export declare function fail<E>(e: E): T.IO<O.Option<E>, never>
export declare function halt<E>(c: C.Cause<E>): T.IO<O.Option<E>, never>
export declare function empty<A>(): T.IO<never, A.Chunk<A>>
export declare const end: T.IO<O.Option<never>, never>
//# sourceMappingURL=Pull.d.ts.map
