import type { NormalCompletion, PlainCompletion, ThrowCompletion, YieldCompletion } from './completion.mts'; import type { ParseNode } from './parser/ParseNode.mts'; import { type AbruptCompletion, type ReferenceRecord, type ReturnCompletion, Value, type ValueCompletion } from '#self'; export type Evaluator = Generator; export type PlainEvaluator = Evaluator>; export type ValueEvaluator = Evaluator>; export type ExpressionEvaluator = Evaluator>; export type StatementEvaluator = Evaluator | AbruptCompletion>; export type ReferenceEvaluator = Evaluator>; export type YieldEvaluator = Evaluator; export type YieldOrAwaitEvaluator = Evaluator | Value>; export type AsyncBuiltinSteps = () => Evaluator | ThrowCompletion | ReturnCompletion>; export type ExpressionThatEvaluatedToReferenceRecord = ParseNode.IdentifierReference; export declare function Evaluate(node: ExpressionThatEvaluatedToReferenceRecord): ReferenceEvaluator; export declare function Evaluate(node: ParseNode.Module | ParseNode.ScriptBody): ValueEvaluator; export declare function Evaluate(node: ParseNode.Expression): ExpressionEvaluator; export declare function Evaluate(node: ParseNode): StatementEvaluator; export type EvaluatorYieldType = { type: 'debugger'; } | { type: 'potential-debugger'; } | { type: 'await'; } | { type: 'yield'; value: Value; } | { type: 'async-generator-yield'; }; export type EvaluatorNextType = { type: 'debugger-resume'; value: ValueCompletion | undefined; } | { type: 'await-resume'; value: ValueCompletion; } | { type: 'generator-resume' | 'async-generator-resume'; value: ValueCompletion | ReturnCompletion; }; export interface BreakpointLocation { scriptId: string; lineNumber: number; columnNumber?: number; } export declare function getBreakpointCandidateNodes(from: BreakpointLocation, to?: BreakpointLocation, _restrictToFunction?: boolean): Generator; export declare function parseNodeToBreakpointLocation(scriptId: string, node: ParseNode): BreakpointLocation; //# sourceMappingURL=evaluator.d.mts.map