/** * This is the same as TypeScript's `Iterable`, but with all three type parameters. * @todo Remove once TypeScript 5.6 is the minimum. */ interface Iterable { [Symbol.iterator](): Iterator; } /** * This is the same as TypeScript's `AsyncIterable`, but with all three type parameters. * @todo Remove once TypeScript 5.6 is the minimum. */ interface AsyncIterable { [Symbol.asyncIterator](): AsyncIterator; } /** * Determines if the given function is an iterator. */ declare function isIterable(fn: any): fn is Iterable | AsyncIterable; export { type AsyncIterable, type Iterable, isIterable };