import type * as A from "../../Collections/Immutable/Chunk"
import * as E from "../../Either"
import type * as Ex from "../../Exit"
import type * as O from "../../Option"
import * as T from "../_internal/effect"
import type * as F from "../_internal/fiber"
import { Stream } from "./definitions"
/**
 * Creates a stream from an asynchronous callback that can be called multiple times.
 * The registration of the callback returns either a canceler or synchronously returns a stream.
 * The optionality of the error type `E` can be used to signal the end of the stream, by
 * setting it to `None`.
 */
export declare function effectAsyncInterruptEither<R, E, A>(
  register: (
    cb: (
      next: T.Effect<R, O.Option<E>, A.Chunk<A>>,
      offerCb?: F.Callback<never, boolean>
    ) => T.UIO<Ex.Exit<never, boolean>>
  ) => E.Either<T.Canceler<R>, Stream<R, E, A>>,
  outputBuffer?: number
): Stream<R, E, A>
//# sourceMappingURL=effectAsyncInterruptEither.d.ts.map
