import type { VariableDeclarationKind } from "../parse.js"; import type { InterpreterSnapshot, InterpreterValue } from "./interpreter.js"; type ScopeLookupResult = { found: true; kind: VariableDeclarationKind; value: InterpreterValue; } | { found: false; }; type ScopeOptions = { functionBoundary?: boolean; chargeData?: boolean; }; export declare class Scope { #private; private readonly parent?; private readonly importMeta?; private readonly options; constructor(bindings?: Record, parent?: Scope | undefined, importMeta?: InterpreterValue, options?: ScopeOptions, restoredBindings?: Record); child(bindings?: Record, options?: ScopeOptions): Scope; consumeRestoredBinding(name: string): { found: true; value: InterpreterValue; } | { found: false; }; hasOwnBinding(name: string): boolean; getOwnBindingKind(name: string): VariableDeclarationKind | undefined; isFunctionBoundary(): boolean; iterationChild(names: readonly string[]): Scope; lookupImportMeta(): InterpreterValue; retainedValues(): InterpreterValue[]; declare(name: string, kind: VariableDeclarationKind, value: InterpreterValue): void; declareVar(name: string): void; predeclare(name: string, kind: VariableDeclarationKind): void; assign(name: string, value: InterpreterValue): void; lookup(name: string): ScopeLookupResult; snapshot(): InterpreterSnapshot; copyInitializedBindingsFrom(source: Scope, names: readonly string[]): void; private resolveScope; private requireInitializedBinding; } export {};