import { Store, StoreValue } from '@ngneat/elf'; export interface StateHistoryOptions { maxAge: number; comparatorFn: (prevState: State, currentState: State) => boolean; resetFutureOnNewState?: boolean; } declare type History = { past: State[]; present: State | null; future: State[]; }; export declare class StateHistory> { protected store: T; private options; private paused; private history; private skipUpdate; private subscription; private hasPastSubject; private hasFutureSubject; private mergedOptions; hasPast$: import("rxjs").Observable; hasFuture$: import("rxjs").Observable; constructor(store: T, options?: Partial>); get hasPast(): boolean; get hasFuture(): boolean; getPast(): History['past']; getFuture(): History['future']; activate(): void; undo(): void; redo(): void; jumpToPast(index: number): void; jumpToFuture(index: number): void; /** * * jump n steps in the past or forward * */ jump(n: number): void; /** * * Clear the history * * @param customUpdateFn Callback function for only clearing part of the history * * @example * * stateHistory.clear((history) => { * return { * past: history.past, * present: history.present, * future: [] * }; * }); */ clear(customUpdateFn?: (history: History) => History): void; destroy({ clearHistory }?: { clearHistory?: boolean; }): void; pause(): void; resume(): void; private update; private updateHasHistory; } export declare function stateHistory>(store: T, options?: Partial>): StateHistory; export {};