import type { PiRuntime, PiRuntimeLaunch, PiRuntimeSession, PiStartSessionInput } from "../runtime.js";
import type { PiAgentMessage, PiModel, PiRpcSlashCommand, PiRuntimeEvent, PiSessionState, PiSessionStats } from "../rpc-types.js";
export declare class FakePi implements PiRuntime {
    readonly recordedLaunches: PiRuntimeLaunch[];
    private readonly sessions;
    private readonly command;
    private readonly queuedCommands;
    constructor(command?: [string, ...string[]]);
    startSession(input: PiStartSessionInput): Promise<FakePiSession>;
    queueCommands(commands: PiRpcSlashCommand[]): void;
    latestSession(): FakePiSession;
}
export declare class FakePiSession implements PiRuntimeSession {
    readonly prompts: Array<{
        message: string;
        imageCount: number;
    }>;
    readonly setModelRequests: Array<{
        provider: string;
        modelId: string;
    }>;
    readonly setThinkingLevelRequests: string[];
    readonly treeNavigationRequests: string[];
    capturedUserEntries: Array<{
        id: string;
        parentId: string | null;
        text: string;
    }>;
    abortRequested: boolean;
    readonly canceledExtensionUiRequests: string[];
    readonly extensionUiResponses: Array<{
        id: string;
        response: {
            value?: string;
            confirmed?: boolean;
            cancelled?: boolean;
        };
    }>;
    setModelResult: PiModel | null;
    models: PiModel[];
    messages: PiAgentMessage[];
    stats: PiSessionStats;
    commands: PiRpcSlashCommand[];
    state: PiSessionState;
    private readonly subscribers;
    constructor(launch: PiRuntimeLaunch);
    onEvent(callback: (event: PiRuntimeEvent) => void): () => void;
    prompt(message: string, images?: Array<{
        type: "image";
        data: string;
        mimeType: string;
    }>): Promise<void>;
    abort(): Promise<void>;
    getState(): Promise<PiSessionState>;
    getMessages(): Promise<PiAgentMessage[]>;
    getAvailableModels(): Promise<PiModel[]>;
    setModel(provider: string, modelId: string): Promise<PiModel>;
    setThinkingLevel(level: string): Promise<void>;
    getSessionStats(): Promise<PiSessionStats>;
    getCommands(): Promise<PiRpcSlashCommand[]>;
    respondToExtensionUiRequest(id: string, response: {
        value?: string;
        confirmed?: boolean;
        cancelled?: boolean;
    }): void;
    cancelExtensionUiRequest(id: string): void;
    close(): Promise<void>;
    emit(event: PiRuntimeEvent): void;
    finishTurn(message?: PiAgentMessage): void;
    private handleTreeNavigationCommand;
    private handleEntryCaptureCommand;
    emitEntryCapture(requestId?: string, reason?: string): void;
    private emitExtensionCommandResult;
}
//# sourceMappingURL=fake-pi.d.ts.map