import { Option } from '../option'; import { ReadonlyTuple } from '../../utils/tuples'; export declare const filterMap: (f: (a: A) => Option) => (fa: Generator) => Generator; export declare const flatMap: (f: (a: A) => Generator) => (fa: Generator) => Generator; export declare function flatten(input: Generator>): Generator; export declare const map: (f: (a: A) => B) => (fa: Generator) => Generator; export declare const pluck: (key: K) => (fa: Generator) => Generator; export declare const filter: (f: (a: A) => boolean) => (fa: Generator) => Generator; export declare const scan: (fn: (scan: B, item: A) => B, initial: B) => (fa: Generator) => Generator; export declare const takeWhile: (fn: (item: A) => boolean) => (fa: Generator) => Generator; export declare const take: (count: number) => (fa: Generator) => Generator; export declare const dropWhile: (fn: (item: A) => boolean) => (fa: Generator) => Generator; export declare const drop: (count: number) => (fa: Generator) => Generator; export declare const list: (fa: Generator) => [A, Generator]; export declare const concat: (fb: Generator) => (fa: Generator) => Generator; export declare const append: (item: A) => (fa: Generator) => Generator; export declare const prepend: (item: A) => (fa: Generator) => Generator; export declare const cycle: (count?: number) => (fa: Generator) => Generator; export declare const enumerate: (fa: Generator) => Generator<[A, number], void, unknown>; export declare function unique(fa: Generator): Generator; export declare function duplicate(fa: Generator): Generator; export declare const chunk: (size: N) => (fa: Generator) => Generator, void, unknown>; export declare const window: (size: N) => (fa: Generator) => Generator, void, unknown>; export declare const zipWith: (f: (a: A, b: B) => C) => (fa: Generator) => (fb: Generator) => Generator;