import type { IsomorphicIterable } from "@vangware/types"; /** * Takes a value, iterable or asynchronous iterable and yields it. * * @category Generators * @example * ```typescript * const iterable = toIterable(1); * const iterator = getIterator(iterable); * iterator.next(); // { value: 1, done: false } * iterator.next(); // { value: undefined, done: true } * ``` * @see {@link createIterableIterator} * @see {@link ReadOnlyAsyncIterable} * @see {@link ReadOnlyAsyncIterableIterator} * @see {@link ReadOnlyIterableIterator} * * @template ValueOrIterable Generic of value or iterable to yield. * @param valueOrIterable Vale or iterable to yield. * @returns Yielded item or iterable. */ export declare const toIterable: ( valueOrIterable: ValueOrIterable, ) => ValueOrIterable extends IsomorphicIterable ? Item extends { readonly [Symbol.asyncIterator]: () => AsyncIterator< Item, any, undefined >; } ? { readonly [Symbol.asyncIterator]: () => AsyncIterableIterator; readonly next: ( ...args: [] | [undefined] ) => Promise>; readonly return?: | ((value?: any) => Promise>) | undefined; readonly throw?: | ((e?: any) => Promise>) | undefined; } : { readonly [Symbol.iterator]: () => IterableIterator; readonly next: ( ...args: [] | [undefined] ) => IteratorResult; readonly return?: | ((value?: any) => IteratorResult) | undefined; readonly throw?: | ((e?: any) => IteratorResult) | undefined; } : { readonly [Symbol.iterator]: () => IterableIterator; readonly next: ( ...args: [] | [undefined] ) => IteratorResult; readonly return?: | ((value?: any) => IteratorResult) | undefined; readonly throw?: | ((e?: any) => IteratorResult) | undefined; };