interface ITransaction {
    addAction(name: string, obj: any): IAction;
}
interface IAction {
    record(x: number, y: number, w: number, h: number, a: number): void;
    undo(): void;
    redo(): void;
}
export declare class Action implements IAction {
    private name;
    private obj;
    private init_x;
    private init_y;
    private init_w;
    private init_h;
    private init_angle;
    private x;
    private y;
    private w;
    private h;
    private a;
    private Obj;
    private Name;
    constructor(name: string, obj: any);
    record(x: number, y: number, w: number, h: number, a: number): void;
    undo(): void;
    redo(): void;
}
export declare class Transaction implements ITransaction {
    isRecording: boolean;
    private actions;
    constructor();
    addAction(name: string, obj: any): IAction;
    recordAction(x: number, y: number, w: number, h: number, a: number): void;
    undo(): void;
    redo(): void;
}
export declare class UndoRedoManager {
    transactions: any[];
    current: number;
    constructor();
    TransactionStart(): ITransaction;
    TransactionEnd(): void;
    IsUndoEmpty(): boolean;
    IsRedoEmpty(): boolean;
    CreateAction(name: string, obj: any): void;
    RecordAction(x: number, y: number, w: number, h: number, a: number): void;
    undo(): void;
    redo(): void;
}
export {};
