import { FrameRecorder, type Frame } from "../tui/index.js";
import { DebuggerDriver } from "./driver.js";
import { DebuggerUI } from "./ui.js";
import type { Checkpoint } from "../runtime/state/checkpointStore.js";
type TestSessionOpts = {
    mod: any;
    args?: unknown[];
    checkpoints?: Checkpoint[];
    width?: number;
    height?: number;
};
/**
 * Thin wrapper that creates a DebuggerUI wired to test infrastructure.
 * Provides a step-at-a-time API for feeding keys and inspecting frames.
 */
export declare class DebuggerTestSession {
    private input;
    private labelingOutput;
    readonly recorder: FrameRecorder;
    readonly ui: DebuggerUI;
    readonly driver: DebuggerDriver;
    private runPromise;
    private result;
    private finished;
    private pressCount;
    private constructor();
    static create(opts: TestSessionOpts): Promise<DebuggerTestSession>;
    press(key: string, opts?: {
        times?: number;
        shift?: boolean;
    }): Promise<void>;
    type(str: string): Promise<void>;
    frame(): Frame;
    quit(): Promise<any>;
    returnValue(): any;
    writeHTML(path: string): void;
    get isFinished(): boolean;
    /** Start the driver loop in the background and wait for it to reach its first idle. */
    private startDriver;
}
export {};
