import { ExecutionContext } from '../execution-context/ExecutionContext.mts'; import { ThrowCompletion, type YieldCompletion } from '../completion.mts'; import { type PlainEvaluator, type YieldEvaluator } from '../evaluator.mts'; import { JSStringValue, Value } from '../value.mts'; import type { ParseNode } from '../parser/ParseNode.mts'; import { PromiseCapabilityRecord, type OrdinaryObject } from './all.mts'; /** https://tc39.es/ecma262/#sec-asyncgenerator-objects */ /** https://tc39.es/ecma262/#sec-asyncgeneratorrequest-records */ export interface AsyncGeneratorRequestRecord { readonly Completion: YieldCompletion; readonly Capability: PromiseCapabilityRecord; } export declare const AsyncGeneratorRequestRecord: { (value: AsyncGeneratorRequestRecord): AsyncGeneratorRequestRecord; [Symbol.hasInstance](instance: unknown): instance is AsyncGeneratorRequestRecord; }; export interface AsyncGeneratorObject extends OrdinaryObject { AsyncGeneratorState: 'suspendedStart' | 'suspendedYield' | 'executing' | 'completed' | 'draining-queue'; AsyncGeneratorContext: ExecutionContext; AsyncGeneratorQueue: AsyncGeneratorRequestRecord[]; GeneratorBrand: JSStringValue | undefined; } /** https://tc39.es/ecma262/#sec-asyncgeneratorstart */ export declare function AsyncGeneratorStart(generator: AsyncGeneratorObject, generatorBody: ParseNode.AsyncGeneratorBody | (() => YieldEvaluator)): void; /** https://tc39.es/ecma262/#sec-asyncgeneratorvalidate */ export declare function AsyncGeneratorValidate(generator: Value, generatorBrand: JSStringValue | undefined): ThrowCompletion | undefined; /** https://tc39.es/ecma262/#sec-asyncgeneratorenqueue */ export declare function AsyncGeneratorEnqueue(generator: AsyncGeneratorObject, completion: YieldCompletion, promiseCapability: PromiseCapabilityRecord): void; /** https://tc39.es/ecma262/#sec-asyncgeneratorresume */ export declare function AsyncGeneratorResume(generator: AsyncGeneratorObject, completion: YieldCompletion): Generator; /** https://tc39.es/ecma262/#sec-asyncgeneratoryield */ export declare function AsyncGeneratorYield(value: Value): YieldEvaluator; /** https://tc39.es/ecma262/#sec-asyncgeneratorawaitreturn */ export declare function AsyncGeneratorAwaitReturn(generator: AsyncGeneratorObject): PlainEvaluator; //# sourceMappingURL=async-generator-objects.d.mts.map