export interface Asyncerator { [Symbol.asyncIterator](): AsyncIterableIterator; } /** * Asyncables are anything that can be turned into an Asyncerator: normal iterators and iterables, AsyncIterators, * AsyncIterables, AsyncGenerators, AsyncIterableIterators, and of course Asyncerators themselves. */ export type Asyncable = Iterator | Iterable | AsyncIterator | AsyncIterable | Asyncerator; /** * Create an Asyncerator from an Asyncable. * * @param source */ export default function (source: Asyncable | (() => Asyncerator)): Asyncerator;