import { NormalCompletion, ReturnCompletion, ThrowCompletion } from '../completion.mts'; import { ExecutionContext } from '../execution-context/ExecutionContext.mts'; import { JSStringValue, ObjectValue, UndefinedValue, Value } from '../value.mts'; import { type YieldEvaluator } from '../evaluator.mts'; import { type Mutable } from '../utils/language.mts'; import type { ParseNode } from '../parser/ParseNode.mts'; import { type IteratorRecord, type OrdinaryObject } from './all.mts'; /** https://tc39.es/ecma262/#sec-generator-objects */ export interface GeneratorObject extends OrdinaryObject { GeneratorState: 'suspendedStart' | 'suspendedYield' | 'executing' | 'completed' | UndefinedValue; GeneratorContext: ExecutionContext | null; readonly GeneratorBrand: JSStringValue | undefined; UnderlyingIterators?: IteratorRecord[]; HostCapturedValues?: readonly Value[]; } /** https://tc39.es/ecma262/#sec-generatorstart */ export declare function GeneratorStart(generator: GeneratorObject, generatorBody: ParseNode.GeneratorBody | (() => YieldEvaluator)): undefined; export declare function generatorBrandToErrorMessageType(generatorBrand: JSStringValue | undefined): string | undefined; /** https://tc39.es/ecma262/#sec-generatorvalidate */ export declare function GeneratorValidate(generator: Value, generatorBrand: JSStringValue | undefined): "completed" | "suspendedStart" | "suspendedYield" | ThrowCompletion | UndefinedValue; /** https://tc39.es/ecma262/#sec-generatorresume */ export declare function GeneratorResume(generator: Value, value: Value | void, generatorBrand: JSStringValue | undefined): Generator; /** https://tc39.es/ecma262/#sec-generatorresumeabrupt */ export declare function GeneratorResumeAbrupt(generator: Value, abruptCompletion: ThrowCompletion | ReturnCompletion, generatorBrand: JSStringValue | undefined): Generator | JSStringValue | NormalCompletion | import("#self").NullValue | import("#self").NumberValue | ObjectValue | { readonly Type: 'return'; readonly Value: Value; readonly Target: undefined; mark(m: import("#self").GCMarker): void; } | import("#self").SymbolValue | ThrowCompletion | UndefinedValue, import("#self").EvaluatorNextType>; /** https://tc39.es/ecma262/#sec-getgeneratorkind */ export declare function GetGeneratorKind(): 'async' | 'sync' | 'non-generator'; /** https://tc39.es/ecma262/#sec-generatoryield */ export declare function GeneratorYield(iterNextObj: ObjectValue): YieldEvaluator; /** https://tc39.es/ecma262/#sec-yield */ export declare function Yield(value: Value): YieldEvaluator; /** https://tc39.es/ecma262/#sec-createiteratorfromclosure */ export declare function CreateIteratorFromClosure(closure: () => YieldEvaluator, generatorBrand: JSStringValue | undefined, generatorPrototype: ObjectValue, extraSlots?: string[], enclosedValues?: readonly Value[]): Mutable; //# sourceMappingURL=generator-operations.d.mts.map