export declare type ForOfAwaitable<T> = AsyncIterable<T> | Iterable<T>;
export declare type ForOfAwaitableIterator<T> = AsyncIterableIterator<T> | IterableIterator<T>;
export declare function iterator<T>(xs: Iterable<T>): IterableIterator<T>;
export declare function asyncIterator<T>(xs: AsyncIterable<T>): AsyncIterableIterator<T>;
export declare function forAwaitableIterator<T>(xs: ForOfAwaitable<T>): ForOfAwaitableIterator<T>;
export declare function isIterator(xs: any): boolean;
export declare function isAsyncIterator(xs: any): boolean;
export declare function isForOfAwaitableIterator(xs: any): boolean;
export declare function tee<T>(it: Iterable<T> | Iterator<T>): [Iterable<T>, Iterable<T>];
export declare function asyncTee<T>(it: ForOfAwaitable<T> | ForOfAwaitableIterator<T>): [ForOfAwaitable<T>, ForOfAwaitable<T>];
export declare function teeN<T>(it: Iterable<T> | Iterator<T>, n?: number): Iterable<T>[];
export declare function asyncTeeN<T>(it: ForOfAwaitable<T> | ForOfAwaitableIterator<T>, n?: number): ForOfAwaitable<T>[];
