import type { ForEachFn, FoldFn, MapFn, PredicateFn, CompareFn, KeyFn, ScanFn, EqualFn } from './types/functions/mod'; import { Flatten, Pair, Nullable } from './types/mod'; export declare type ToAsyncIterator = T extends number ? IAsyncIterator_number : T extends Pair ? IAsyncIterator_zip : IAsyncIterator_; export interface IAsyncIterator_ extends AsyncIterableIterator { /** * @see https://tc39.es/proposal-iterator-helpers/#sec-asynciteratorprototype-@@tostringtag */ [Symbol.toStringTag]: string; /** * similar Array.prototype.every * * @see https://doc.rust-lang.org/stable/std/iter/trait.Iterator.html#method.all */ all(fn: PredicateFn): Promise; /** * similar Array.prototype.some * * @see https://doc.rust-lang.org/stable/std/iter/trait.Iterator.html#method.any */ any(fn: PredicateFn): Promise; /** * similar concat * * @see https://doc.rust-lang.org/stable/std/iter/trait.Iterator.html#method.chain */ chain(other: Iterable> | AsyncIterable>): ToAsyncIterator; /** * @description * Convert AsyncIterator_ to Array * * @see https://doc.rust-lang.org/stable/std/iter/trait.Iterator.html#method.collect */ collect(): Promise; /** * @see https://doc.rust-lang.org/stable/std/iter/trait.Iterator.html#method.count */ count(): Promise; /** * @see https://doc.rust-lang.org/stable/std/iter/trait.Iterator.html#method.cycle */ cycle(): ToAsyncIterator; /** * @see https://doc.rust-lang.org/stable/std/iter/trait.Iterator.html#method.enumerate */ enumerate(): ToAsyncIterator>; /** * @see https://doc.rust-lang.org/stable/std/iter/trait.Iterator.html#method.filter */ filter(predicate: PredicateFn): ToAsyncIterator; /** * @description * do not catch error * * filter only `null | undefined | NaN` * * @example * ['a', 'b', '1', 'c', '2', '3'] * .iter() * .filterMap(e => parseInt(e, 10)) * .collect(); // [1, 2, 3] * * @see https://doc.rust-lang.org/stable/std/iter/trait.Iterator.html#method.filter_map */ filterMap(fn: MapFn>): ToAsyncIterator; /** * @see https://doc.rust-lang.org/stable/std/iter/trait.Iterator.html#method.find */ find(predicate: PredicateFn): Promise; /** * @description * do not catch error * * filter only `null | undefined | NaN` * * @example * ['a', 'b', '1', 'c', '2'] * .iter() * .findMap(e => parseInt(e, 10)); // 1 * * @see https://doc.rust-lang.org/stable/std/iter/trait.Iterator.html#method.find_map */ findMap(fn: MapFn>): Promise; /** * @example * [`it's Sunny in`, '', 'California'] * .iter() * .flatMap(e => e.split(' ')) * .collect(); // [`it's`, 'Sunny', 'in', '', 'California'] * * @see https://doc.rust-lang.org/std/iter/trait.Iterator.html#method.flat_map */ flatMap | AsyncIterable>(fn: MapFn): ToAsyncIterator>; /** * @example * [[1], [Promise.resolve(2), 3], 4, 5] * .iter() * .flatten() * .collect(); // [1, 2, 3, 4, 5] * * @see https://doc.rust-lang.org/stable/std/iter/trait.Iterator.html#method.flatten */ flatten(): ToAsyncIterator>; /** * @see http://hackage.haskell.org/package/base-4.12.0.0/docs/Data-List.html#v:foldl */ fold(init: U | Promise, fn: FoldFn): Promise; /** * @throws empty iterator * * @see http://hackage.haskell.org/package/base-4.12.0.0/docs/Data-List.html#v:foldl1 */ fold1(fn: FoldFn): Promise; /** * @see https://doc.rust-lang.org/stable/std/iter/trait.Iterator.html#method.for_each */ forEach(fn: ForEachFn): Promise; /** * @description * if empty iterator, return undefined * * @see https://doc.rust-lang.org/stable/std/iter/trait.Iterator.html#tymethod.next */ head(): Promise; /** * @see https://doc.rust-lang.org/stable/std/iter/trait.Iterator.html#method.inspect */ inspect(fn: ForEachFn): ToAsyncIterator; /** * @description * if empty iterator, return undefined * * @see https://doc.rust-lang.org/stable/std/iter/trait.Iterator.html#method.last */ last(): Promise; /** * @see https://doc.rust-lang.org/stable/std/iter/trait.Iterator.html#method.map */ map(fn: MapFn): ToAsyncIterator; /** * @see https://doc.rust-lang.org/stable/std/iter/trait.Iterator.html#method.max */ max(): Promise; /** * @see https://doc.rust-lang.org/stable/std/iter/trait.Iterator.html#method.max_by */ maxBy(fn: CompareFn): Promise; /** * @see https://doc.rust-lang.org/stable/std/iter/trait.Iterator.html#method.max_by_key */ maxByKey(keyFn: KeyFn, cmpFn?: CompareFn): Promise; /** * @see https://doc.rust-lang.org/stable/std/iter/trait.Iterator.html#method.min */ min(): Promise; /** * @see https://doc.rust-lang.org/stable/std/iter/trait.Iterator.html#method.min_by */ minBy(fn: CompareFn): Promise; /** * @see https://doc.rust-lang.org/stable/std/iter/trait.Iterator.html#method.min_by_key */ minByKey(keyFn: KeyFn, cmpFn?: CompareFn): Promise; /** * @see https://doc.rust-lang.org/stable/std/iter/trait.Iterator.html#method.nth */ nth(n: number): Promise; /** * @see https://hackage.haskell.org/package/base-4.12.0.0/docs/Data-List.html#v:nub */ nub(): ToAsyncIterator; /** * @see https://hackage.haskell.org/package/base-4.12.0.0/docs/Data-List.html#v:nubBy */ nubBy(fn: EqualFn): ToAsyncIterator; /** * @see https://doc.rust-lang.org/stable/std/iter/trait.Iterator.html#method.partition */ partition(fn: PredicateFn): Promise, ToAsyncIterator>>; /** * @see https://doc.rust-lang.org/stable/std/iter/trait.Iterator.html#method.position */ position(fn: PredicateFn): Promise; /** * @see https://doc.rust-lang.org/stable/std/iter/trait.Iterator.html#method.rev */ reverse(): ToAsyncIterator; /** * @see http://hackage.haskell.org/package/base-4.12.0.0/docs/Data-List.html#v:scanl */ scan(init: U | Promise, fn: ScanFn): ToAsyncIterator; /** * @see http://hackage.haskell.org/package/base-4.12.0.0/docs/Data-List.html#v:scanl1 */ scan1(fn: ScanFn): ToAsyncIterator; /** * @see https://doc.rust-lang.org/stable/std/iter/trait.Iterator.html#method.skip */ skip(count_: number): ToAsyncIterator; /** * @see https://doc.rust-lang.org/stable/std/iter/trait.Iterator.html#method.skip_while */ skipWhile(predicate: PredicateFn): ToAsyncIterator; /** * @see https://doc.rust-lang.org/stable/std/iter/trait.Iterator.html#method.step_by */ stepBy(step: number): ToAsyncIterator; /** * @see https://doc.rust-lang.org/stable/std/iter/trait.Iterator.html#method.take */ take(count_: number): ToAsyncIterator; /** * @see https://doc.rust-lang.org/stable/std/iter/trait.Iterator.html#method.take_while */ takeWhile(predicate: PredicateFn): ToAsyncIterator; toString(): string; /** * @see https://doc.rust-lang.org/stable/std/iter/trait.Iterator.html#method.zip */ zip(other: Iterable> | AsyncIterable>): ToAsyncIterator>; } export interface IAsyncIterator_number extends IAsyncIterator_ { /** * @example * [1, 2, 3, 4, 5] * .iter() * .average(); // 3 * * ([] as number[]) * .iter() * .average(); // 0 */ average(): Promise; /** * @example * [1, 2, 3, 4, 5] * .iter() * .product(); // 120 * * ([] as number[]) * .iter() * .product(); // 1 * * @see https://doc.rust-lang.org/stable/std/iter/trait.Iterator.html#method.product */ product(): Promise; /** * @example * [1, 2, 3, 4, 5] * .iter() * .sum(); // 15 * * ([] as number[]) * .iter() * .sum(); // 0 * * @see https://doc.rust-lang.org/stable/std/iter/trait.Iterator.html#method.sum */ sum(): Promise; } export interface IAsyncIterator_zip extends IAsyncIterator_> { /** * @see https://doc.rust-lang.org/stable/std/iter/trait.Iterator.html#method.unzip */ unzip(): Promise, ToAsyncIterator>>; } export declare class AsyncIterator_ implements IAsyncIterator_ { constructor(iter: AsyncIterable>); private readonly _iter; readonly [Symbol.toStringTag]: "Async Iterator"; [Symbol.asyncIterator](): this; next(): Promise<{ done: boolean | undefined; value: T; }>; all(fn: PredicateFn): Promise; any(fn: PredicateFn): Promise; average(): Promise; chain(other: Iterable> | AsyncIterable>): ToAsyncIterator; collect(): Promise; count(): Promise; cycle(): ToAsyncIterator; enumerate(): IAsyncIterator_zip; filter(predicate: PredicateFn): ToAsyncIterator; filterMap(fn: MapFn>): ToAsyncIterator; find(predicate: PredicateFn): Promise; findMap(fn: MapFn>): Promise; flatMap | AsyncIterable>(fn: MapFn): ToAsyncIterator>; flatten(): ToAsyncIterator>; fold(init: U | Promise, fn: FoldFn): Promise; fold1(fn: FoldFn): Promise; forEach(fn: ForEachFn): Promise; head(): Promise; inspect(fn: ForEachFn): ToAsyncIterator; last(): Promise; map(fn: MapFn): ToAsyncIterator; max(): Promise; maxBy(fn: CompareFn): Promise; maxByKey(keyFn: KeyFn, cmpFn?: CompareFn): Promise; min(): Promise; minBy(fn: CompareFn): Promise; minByKey(keyFn: KeyFn, cmpFn?: CompareFn): Promise; nth(n: number): Promise; nub(): ToAsyncIterator; nubBy(fn: EqualFn): ToAsyncIterator; partition(fn: PredicateFn): Promise, ToAsyncIterator>>; position(fn: PredicateFn): Promise; product(): Promise; reverse(): ToAsyncIterator; scan(init: U | Promise, fn: ScanFn): ToAsyncIterator; scan1(fn: ScanFn): ToAsyncIterator; skip(count_: number): ToAsyncIterator; skipWhile(predicate: PredicateFn): ToAsyncIterator; stepBy(step: number): ToAsyncIterator; sum(): Promise; take(count_: number): ToAsyncIterator; takeWhile(predicate: PredicateFn): ToAsyncIterator; unzip(): Promise | IAsyncIterator_, IAsyncIterator_number | IAsyncIterator_zip | IAsyncIterator_>>; zip(other: Iterable> | AsyncIterable>): IAsyncIterator_zip; } export declare function iterator(iter: Iterable> | AsyncIterable>): ToAsyncIterator; //# sourceMappingURL=iterator.d.ts.map