import { EntityProps, HistorySubscribe, IEntity, IEntityMetaHistory, SnapshotCallbacks, SnapshotInput } from "../interface/types";
import { Snapshot } from "./history-snapshot";
export declare class EntityMetaHistory<T extends EntityProps> implements IEntityMetaHistory<T> {
    initialProps: T;
    snapshots: Snapshot<T>[];
    private callbacks?;
    onChange: Array<(snapshot: Snapshot<T>) => void>;
    constructor(props: T, callbacks?: SnapshotCallbacks<T>);
    addSnapshot(data: SnapshotInput<T>): void;
    deepWatch(rootEntity: IEntity<any>, onChangeCallback: (entity: IEntity<any>, snapshot: Snapshot<any>) => void, childrenEntity?: IEntity<any>): void;
    getSnapshotFromUpdatedKey(key: any): Snapshot<T>[];
    hasChange(key: string): boolean;
    subs<E extends IEntity<T>>(entity: E, onChange: (snapshot: Snapshot<T>, ...rest: IEntity<any>[]) => any, parents?: IEntity<any>[], result?: any[]): any[];
    subscribe<E extends IEntity<T>>(entity: E | E[], subscribeProps: HistorySubscribe<T>, initialProps?: E[]): void;
    protected deepSearchSnapshots(entity: IEntity<T>, key: keyof T): any[];
    resolve<T>(initialValues: T[], currentValues: T[]): {
        toCreate: T[];
        toDelete: T[];
        toUpdate: T[];
    };
    private resolveEachPropsToDelete;
    private resolveEachPropsToUpsert;
}
//# sourceMappingURL=history.d.ts.map