export interface IHistoryProps { onPush?: (item: T) => void; onRedo?: (item: T) => void; onUndo?: (item: T) => void; onGoto?: (item: T) => void; } export interface HistoryItem { data: T; type?: string; timestamp: number; } export interface ISerializable { from(json: any): void; serialize(): any; } export declare class History { context: ISerializable; props: IHistoryProps>; current: number; history: HistoryItem[]; updateTimer: any; maxSize: number; locking: boolean; constructor(context: T, props?: IHistoryProps>); makeObservable(): void; list(): HistoryItem[]; push(type?: string): void; get allowUndo(): boolean; get allowRedo(): boolean; redo(): void; undo(): void; goTo(index: number): void; clear(): void; }