import { EditorState } from '../richTextTypes';
export interface EditorAction {
    type: 'command' | 'paste' | 'keyboard' | 'selection' | 'input';
    name: string;
    timestamp: number;
    details: {
        [key: string]: any;
    };
    state: EditorStateSnapshot;
}
export interface EditorStateSnapshot {
    content: string;
    selection: {
        start: number;
        end: number;
        collapsed: boolean;
        text: string;
    } | null;
    activeStyles: string[];
    caretPosition: {
        node: string;
        offset: number;
    } | null;
}
export interface DebugSession {
    id: string;
    startTime: number;
    actions: EditorAction[];
}
export declare class EditorDebugger {
    private session;
    private maxActions;
    private isDevelopment;
    constructor(maxActions?: number);
    private createNewSession;
    private getNodeDescription;
    private captureState;
    logCommand(command: string, value: string | undefined, state: EditorState): void;
    logPaste(data: DataTransfer, state: EditorState): void;
    logKeyboard(event: KeyboardEvent, state: EditorState): void;
    logSelection(state: EditorState): void;
    logInput(inputType: string, data: string | null, state: EditorState): void;
    private addAction;
    getSession(): DebugSession;
    clearSession(): void;
    exportSession(): string;
    downloadSession(): void;
    exportSessionWithPrompt(userMessage?: string): string;
}
//# sourceMappingURL=debug.d.ts.map