import { Ref } from 'vue';
import { CellPosition, Row, SpreadsheetChange } from '../types';
export declare function useSpreadsheetUndo(localRows: Ref<Row[]>, selectionStart: Ref<CellPosition | null>, selectionEnd: Ref<CellPosition | null>, emitUpdate: () => void): {
    undoStack: Ref<{
        type: "cell" | "row" | "paste";
        data: {
            rows: Row[];
            selection?: {
                start: {
                    row: number;
                    col: number;
                };
                end: {
                    row: number;
                    col: number;
                };
            } | undefined;
        };
    }[], SpreadsheetChange[] | {
        type: "cell" | "row" | "paste";
        data: {
            rows: Row[];
            selection?: {
                start: {
                    row: number;
                    col: number;
                };
                end: {
                    row: number;
                    col: number;
                };
            } | undefined;
        };
    }[]>;
    redoStack: Ref<{
        type: "cell" | "row" | "paste";
        data: {
            rows: Row[];
            selection?: {
                start: {
                    row: number;
                    col: number;
                };
                end: {
                    row: number;
                    col: number;
                };
            } | undefined;
        };
    }[], SpreadsheetChange[] | {
        type: "cell" | "row" | "paste";
        data: {
            rows: Row[];
            selection?: {
                start: {
                    row: number;
                    col: number;
                };
                end: {
                    row: number;
                    col: number;
                };
            } | undefined;
        };
    }[]>;
    canUndo: import('vue').ComputedRef<boolean>;
    canRedo: import('vue').ComputedRef<boolean>;
    saveState: (type: SpreadsheetChange["type"]) => void;
    undo: () => void;
    redo: () => void;
};
//# sourceMappingURL=useSpreadsheetUndo.d.ts.map