import { BooleanValue, ObjectValue, Value } from '../value.mts'; import { Completion, type ValueEvaluator, ThrowCompletion } from '../completion.mts'; import type { Evaluator, PlainEvaluator } from '../evaluator.mts'; import { type FunctionObject, PromiseCapabilityRecord, type GeneratorObject } from './all.mts'; import { type PromiseObject, type OrdinaryObject } from '#self'; /** https://tc39.es/ecma262/#sec-operations-on-iterator-objects */ /** https://tc39.es/ecma262/#sec-iteration */ export interface IteratorRecord { readonly Iterator: ObjectValue; readonly NextMethod: Value; Done: BooleanValue; } export interface IteratorObject extends OrdinaryObject { Iterated: IteratorRecord; } /** https://tc39.es/ecma262/#sec-getiteratordirect */ export declare function GetIteratorDirect(obj: ObjectValue): PlainEvaluator; /** https://tc39.es/ecma262/#sec-getiteratorfrommethod */ export declare function GetIteratorFromMethod(obj: Value, method: FunctionObject): PlainEvaluator; /** https://tc39.es/ecma262/#sec-getiterator */ export declare function GetIterator(obj: Value, kind: 'sync' | 'async'): PlainEvaluator; export type PrimitiveHanding = 'iterate-string-primitives' | 'reject-primitives'; export declare function GetIteratorFlattenable(obj: Value, primitiveHandling: PrimitiveHanding): PlainEvaluator; /** https://tc39.es/ecma262/#sec-iteratornext */ export declare function IteratorNext(iteratorRecord: IteratorRecord, value?: Value): ValueEvaluator; /** https://tc39.es/ecma262/#sec-iteratorcomplete */ export declare function IteratorComplete(iteratorResult: ObjectValue): ValueEvaluator; /** https://tc39.es/ecma262/#sec-iteratorvalue */ export declare function IteratorValue(iterResult: ObjectValue): ValueEvaluator; /** https://tc39.es/ecma262/#sec-iteratorstep */ export declare function IteratorStep(iteratorRecord: IteratorRecord): PlainEvaluator; /** https://tc39.es/ecma262/#sec-iteratorstepvalue */ export declare function IteratorStepValue(iteratorRecord: IteratorRecord): PlainEvaluator; /** https://tc39.es/ecma262/#sec-iteratorclose */ export declare function IteratorClose>(iteratorRecord: IteratorRecord, completion: C): Evaluator; /** https://tc39.es/ecma262/#sec-iteratorcloseall */ export declare function IteratorCloseAll(iters: Iterable, completion: Completion): Evaluator>; /** https://tc39.es/ecma262/#sec-asynciteratorclose */ export declare function AsyncIteratorClose>(iteratorRecord: IteratorRecord, completion: C | T): Generator; /** https://tc39.es/ecma262/#sec-createiterresultobject */ export declare function CreateIteratorResultObject(value: Value, done: BooleanValue): OrdinaryObject; /** https://tc39.es/ecma262/#sec-createlistiteratorRecord */ export declare function CreateListIteratorRecord(list: Iterable): IteratorRecord; /** https://tc39.es/ecma262/#sec-iteratortolist */ export declare function IteratorToList(iteratorRecord: IteratorRecord): PlainEvaluator; /** https://tc39.es/ecma262/#sec-createasyncfromsynciterator */ export declare function CreateAsyncFromSyncIterator(syncIteratorRecord: IteratorRecord): IteratorRecord; /** https://tc39.es/ecma262/#sec-asyncfromsynciteratorcontinuation */ export declare function AsyncFromSyncIteratorContinuation(result: ObjectValue, promiseCapability: PromiseCapabilityRecord, syncIteratorRecord: IteratorRecord, closeOnRejection: BooleanValue): ValueEvaluator; export type IteratorZipMode = 'shortest' | 'longest' | 'strict'; /** https://tc39.es/ecma262/#sec-IteratorZip */ export declare function IteratorZip(_iters: readonly IteratorRecord[], mode: IteratorZipMode, padding: readonly Value[], finishResults: (results: readonly Value[]) => Value): GeneratorObject; //# sourceMappingURL=iterator-operations.d.mts.map