import { Specification } from "../specification/specification";
import { FactEnvelope, FactFeed, FactRecord, FactReference, ProjectedResult, Storage } from '../storage';
export declare function getPredecessors(fact: FactRecord | null, role: string): FactReference[];
export declare class MemoryStore implements Storage {
    private factEnvelopes;
    private bookmarksByFeed;
    private runner;
    private mruDateBySpecificationHash;
    constructor();
    close(): Promise<void>;
    save(envelopes: FactEnvelope[]): Promise<FactEnvelope[]>;
    read(start: FactReference[], specification: Specification): Promise<ProjectedResult[]>;
    feed(feed: Specification, start: FactReference[], bookmark: string): Promise<FactFeed>;
    whichExist(references: FactReference[]): Promise<FactReference[]>;
    load(references: FactReference[]): Promise<FactEnvelope[]>;
    purge(purgeConditions: Specification[]): Promise<number>;
    purgeDescendants(purgeRoot: FactReference, triggers: FactReference[]): Promise<number>;
    loadBookmark(feed: string): Promise<string>;
    saveBookmark(feed: string, bookmark: string): Promise<void>;
    getMruDate(specificationHash: string): Promise<Date | null>;
    setMruDate(specificationHash: string, mruDate: Date): Promise<void>;
    private findFact;
    private getPredecessors;
    private getSuccessors;
    private ancestorsOf;
    private addAllAncestors;
    private hydrate;
}
//# sourceMappingURL=memory-store.d.ts.map