import { AsyncIterableLike, Retainer, AsyncRetainer, DistinctEqualAsyncFn, GroupAsyncFn } from "../core"; import { AsyncIterableTuple } from "./iterable-async-tuple"; import { TC39AsyncIteratorHelpers } from "../tc39/async"; export interface ExtendedAsyncIterable extends AsyncIterable, TC39AsyncIteratorHelpers { drain(): Promise; hasAny(): Promise; union(other: AsyncIterableLike): ExtendedAsyncIterable; retain(retainer?: Retainer | AsyncRetainer): ExtendedAsyncIterable; skip(count: number): ExtendedAsyncIterable; mask(maskIterable: AsyncIterableLike): ExtendedAsyncIterable; maskReversible(maskIterable: AsyncIterableLike, reverse?: boolean): ExtendedAsyncIterable; distinct(equalityFn?: DistinctEqualAsyncFn): ExtendedAsyncIterable; group(fn: GroupAsyncFn): ExtendedAsyncIterable>; tap(fn: (value: T) => void | Promise): ExtendedAsyncIterable; toTuple(size: S): AsyncIterableTuple; toIterable(): AsyncIterable; }