import type { IsomorphicIterable } from "@vangware/types"; /** * Get a `Symbol.iterator` from an iterable or a `Symbol.asyncIterator` from an * asynchronous iterable. * * @category Common * @example * ```typescript * const iterator = getIterator([1, 2, 3]); * iterator.next(); // { value: 1, done: false } * iterator.next(); // { value: 2, done: false } * iterator.next(); // { value: 3, done: false } * iterator.next(); // { value: undefined, done: true } * ``` * @param iterable Iterable to get the iterator from. * @returns Iterator instance. */ export declare const getIterator: ( iterable: Iterable_1, ) => Iterable_1 extends IsomorphicIterable ? Iterable_1 extends { readonly [Symbol.asyncIterator]: () => AsyncIterator< Item, any, undefined >; } ? { readonly next: ( ...args: [] | [Item] ) => Promise>; readonly return?: | (( value?: Item | PromiseLike | undefined, ) => Promise>) | undefined; readonly throw?: | ((e?: any) => Promise>) | undefined; } : { readonly next: ( ...args: [] | [Item] ) => IteratorResult; readonly return?: | ((value?: Item | undefined) => IteratorResult) | undefined; readonly throw?: | ((e?: any) => IteratorResult) | undefined; } : never;