import { ComponentSchema, DesignerState, PageSchema } from '../../../types/src/index';
/**
 * 历史记录模型
 */
export interface RecordModel {
    pageSchema: string;
    selectedId?: string;
    type: string;
}
/**
 * 撤销重做功能
 */
export declare function useRevoke(pageSchema: PageSchema, state: DesignerState, setSelectedNode: (schema?: ComponentSchema) => void): {
    currentRecord: import('vue').Ref<{
        pageSchema: string;
        selectedId?: string | undefined;
        type: string;
    } | null, RecordModel | {
        pageSchema: string;
        selectedId?: string | undefined;
        type: string;
    } | null>;
    push: (type?: string) => void;
    recordList: import('vue').Ref<{
        pageSchema: string;
        selectedId?: string | undefined;
        type: string;
    }[], RecordModel[] | {
        pageSchema: string;
        selectedId?: string | undefined;
        type: string;
    }[]>;
    redo: () => boolean;
    reset: () => void;
    undo: () => boolean;
    undoList: import('vue').Ref<{
        pageSchema: string;
        selectedId?: string | undefined;
        type: string;
    }[], RecordModel[] | {
        pageSchema: string;
        selectedId?: string | undefined;
        type: string;
    }[]>;
};
export type Revoke = ReturnType<typeof useRevoke>;
