export interface UndoItem {
    undo(): RedoItem | Promise<RedoItem>;
}
export interface RedoItem {
    redo(): UndoItem | Promise<UndoItem>;
}
export declare class UndoRedoStack {
    private undoStack;
    private redoStack;
    undoLength(): number;
    redoLength(): number;
    push(undo: UndoItem): RedoItem[];
    private locked;
    undo(): Promise<-2 | -1 | 0 | 1>;
    redo(): Promise<-3 | -2 | -1 | 0 | 1>;
}
