import type { SourceMap } from "../backends/sourceMap.js"; import { DebuggerState } from "./debuggerState.js"; import type { Interrupt } from "../runtime/interrupts.js"; import type { AgencyCallbacks } from "../runtime/hooks.js"; import { Checkpoint } from "../runtime/state/checkpointStore.js"; import type { CheckpointStore } from "../runtime/state/checkpointStore.js"; import type { DebuggerIO } from "./types.js"; import type { FunctionParameter } from "../types.js"; import type { TraceHeader } from "../runtime/trace/types.js"; import type { InterruptResponse } from "../runtime/interrupts.js"; type ModuleFunctions = { respondToInterrupts: (interrupts: Interrupt[], responses: InterruptResponse[], opts?: { overrides?: Record; metadata?: Record; }) => Promise; rewindFrom: (checkpoint: Checkpoint, overrides: Record, opts?: { metadata?: Record; }) => Promise; __setDebugger: (dbg: DebuggerState) => void; __getCheckpoints: () => CheckpointStore; }; type DriverOpts = { mod: ModuleFunctions; sourceMap: SourceMap; rewindSize: number; ui: DebuggerIO; checkpoints?: Checkpoint[]; traceHeader?: TraceHeader; }; type DriverRunOpts = Partial<{ interceptConsole: boolean; }>; export declare class DebuggerDriver { private mod; private sourceMap; private ui; debuggerState: DebuggerState; private originalConsoleLog; private originalConsoleError; private programFinished; constructor(opts: DriverOpts); promptForNodeArgs(parameters: FunctionParameter[]): Promise; private interceptConsole; private restoreConsole; getCallbacks(): AgencyCallbacks; run(initialResult: any, _opts?: DriverRunOpts): Promise; private handleInterrupt; private handleCommand; private resumeInterrupt; private resume; private rewindTo; private lookupVariable; private isInSourceMap; } export {};