import type { NativeSnapshotUndoContext } from '../core/types';
/**
 * A single bridge action recorded for undo correlation. Action-correlation
 * only — RN has no DOM/execCommand probe, so we rely on developer
 * declaration plus this rolling history of recent actions.
 */
export interface ActionRecord {
    id: string;
    type: string;
    targetId?: string;
    description?: string;
    timestamp: number;
    /** Default true — set false for actions that aren't reversible (e.g. navigation, network calls) */
    reversible?: boolean;
}
/**
 * Developer-declared undo/redo state. When set, this is authoritative and
 * overrides any heuristic inference from action history.
 */
export interface DeclaredUndoState {
    canUndo: boolean;
    canRedo: boolean;
    undoDescription?: string;
    redoDescription?: string;
    undoDepth?: number;
    redoDepth?: number;
}
export interface UndoTrackerConfig {
    maxHistory?: number;
}
/**
 * Action-correlation undo tracker for React Native.
 *
 * Maintains a rolling buffer of recent actions and a developer-declared
 * undo state slot. The declared state is authoritative when set; otherwise
 * we infer `canUndo` from whether any reversible action has been recorded.
 * `executeUndo`/`executeRedo` are placeholders pending an IPC path through
 * ui-bridge-native to the runner's `/control/undo`.
 */
export declare class UndoTracker {
    private readonly maxHistory;
    private actions;
    private declaredState;
    constructor(config?: UndoTrackerConfig);
    recordAction(record: ActionRecord): void;
    setDeclaredState(state: DeclaredUndoState): void;
    getActionHistory(): ActionRecord[];
    getSnapshotUndoContext(): NativeSnapshotUndoContext;
    executeUndo(): {
        ok: boolean;
        reason?: string;
    };
    executeRedo(): {
        ok: boolean;
        reason?: string;
    };
    clear(): void;
}
//# sourceMappingURL=undo-tracker.d.ts.map