import { FactRecord, FactReference } from '../storage';
export declare type HashMap = {
    [key: string]: any;
};
export declare class Dehydration {
    private entries;
    factRecords(): FactRecord[];
    dehydrate(fact: HashMap): FactReference;
    private createFactRecord;
}
export declare const hashSymbol: symbol | null;
export declare class Hydration {
    private entries;
    constructor(records: FactRecord[]);
    hydrate(reference: FactReference): HashMap;
    private hydratePredecessors;
}
export declare function lookupHash<T extends object>(fact: T): string | null;
export declare function hydrate<T>(record: FactRecord): T;
export declare function hydrateFromTree<T>(references: FactReference[], records: FactRecord[]): T[];
export declare function dehydrateFact(fact: HashMap): FactRecord[];
export declare function dehydrateReference(fact: HashMap): FactReference;
//# sourceMappingURL=hydrate.d.ts.map