import { TerraDrawModeUndoRedoInterface } from "./mode-undo-redo";
import { TerraDrawSessionUndoRedoInterface } from "./session-undo-redo";
import { HistoryChange, HistoryEvent } from "./undo-redo-types";
type TerraDrawUndoRedoCoordinatorOptions = {
    modeLevel?: TerraDrawModeUndoRedoInterface;
    sessionLevel?: TerraDrawSessionUndoRedoInterface;
    shouldPreferMode: () => boolean;
    onHistoryChange?: (historyChange: HistoryEvent) => void;
    shouldEmitHistoryChange?: () => boolean;
};
export declare class TerraDrawUndoRedoCoordinator {
    private modeLevel?;
    private sessionLevel?;
    private shouldPreferMode;
    private onHistoryChange?;
    private shouldEmitHistoryChange;
    constructor(options: TerraDrawUndoRedoCoordinatorOptions);
    emitStackHistoryChange(change: HistoryChange): void;
    private hasSessionUndo;
    private hasSessionRedo;
    private activeStackForUndo;
    private activeStackForRedo;
    canUndo(): boolean;
    canRedo(): boolean;
    undo(): boolean;
    redo(): boolean;
    clearHistory(): void;
    emitHistoryPushForCompletedAction(): void;
}
export {};
