import type { MinimalAsyncIterator, MinimalIterator } from '../inputs/MinimalIterator.js'; /** * Object that can be iterated * * @since 2.0.0 */ export interface SimpleIterator extends MinimalIterator { [Symbol.iterator](): SimpleIterator; /** * Returns next item. * * @since 2.0.0 */ next(this: void): SimpleIteratorResult; } /** * Object that can be iterated asynchronously * * @since 2.5.0 */ export interface SimpleAsyncIterator extends MinimalAsyncIterator { [Symbol.asyncIterator](): SimpleAsyncIterator; /** * Returns next item. * * @since 2.5.0 */ next(this: void): Promise>; } interface IteratorResultValue { readonly done: false; readonly value: D; } interface IteratorResultDone { readonly done: true; readonly value?: never; } export type SimpleIteratorResult = IteratorResultValue | IteratorResultDone; export {};