import { Future } from '../classes/Future'; import { Result } from '../classes/Result'; export declare const ITERATOR_EXHAUSTED: unique symbol; type MP = T | PromiseLike; type MR = T | Result; type MPP = MP | MR>; type MRR = MR | MR>; type MPR = MP | MRR>; export type AsyncGenerator = () => MPR; export type AsyncStepper = (previous: I) => MPR; export type AsyncIterator = (input: I) => MPR; export type AsyncValidator = (output: O) => MPR; export declare function iterateAsync( genfn: AsyncGenerator, iterator: AsyncIterator, validator: AsyncValidator ): Future; export declare function iterateAsync( iterable: Iterable, iterator: AsyncIterator, validator: AsyncValidator ): Future; export declare function iterateAsync( init: AsyncGenerator, step: AsyncStepper, iterator: AsyncIterator, validator: AsyncValidator ): Future; export declare function iterateAsyncIterableWrapper( iterable: Iterable, iterator: AsyncIterator, validator: AsyncValidator ): Future; export declare function iterateAsyncResultWrapper( init: AsyncGenerator, step: AsyncStepper, iterator: AsyncIterator, validator?: AsyncValidator ): Future; export declare function unwrap(item: MPR): Promise; export declare function iterateAsyncImpl( init: AsyncGenerator, step: AsyncStepper, iterator: AsyncIterator, validator?: AsyncValidator ): Promise; export {};