import { Retainer, DistinctEqualFn, GroupFn } from "../core"; import { IterableTuple } from "./iterable-tuple"; import { TC39SyncIteratorHelpers } from "../tc39/sync"; export interface ExtendedIterable extends Iterable, TC39SyncIteratorHelpers { drain(): boolean; hasAny(): boolean; union(other: Iterable): ExtendedIterable; retain(retainer?: Retainer): ExtendedIterable; skip(count: number): ExtendedIterable; mask(maskIterable: Iterable): ExtendedIterable; maskReversible(maskIterable: Iterable, reverse?: boolean): ExtendedIterable; distinct(equalityFn?: DistinctEqualFn): ExtendedIterable; group(fn: GroupFn): ExtendedIterable>; tap(fn: (value: T) => void): ExtendedIterable; toTuple(size: S): IterableTuple; toIterable(): Iterable; }