jinaga
Version:
Data management for web and mobile applications.
50 lines • 2.49 kB
TypeScript
import { Fork } from "../fork/fork";
import { ObservableSource, SpecificationListener } from "../observable/observable";
import { Observer, ResultAddedFunc } from "../observer/observer";
import { Specification } from "../specification/specification";
import { FactEnvelope, FactRecord, FactReference, ProjectedResult, Storage } from "../storage";
import { Network } from "./NetworkManager";
export declare class FactManager {
private readonly fork;
private readonly observableSource;
private readonly store;
private readonly purgeConditions;
private networkManager;
private purgeManager;
private singleUseKeyPair;
constructor(fork: Fork, observableSource: ObservableSource, store: Storage, network: Network, purgeConditions: Specification[], feedRefreshIntervalSeconds?: number);
addSpecificationListener(specification: Specification, onResult: (results: ProjectedResult[]) => Promise<void>): SpecificationListener;
removeSpecificationListener(listener: SpecificationListener): void;
close(): Promise<void>;
testSpecificationForCompliance(specification: Specification): string[];
save(envelopes: FactEnvelope[]): Promise<FactEnvelope[]>;
/**
* Begin a single-use session. Generates a key pair, creates a User fact with the public key,
* signs it, and saves it to the store.
* @returns A structure containing the user fact
*/
beginSingleUse(): Promise<{
graph: any;
last: FactRecord;
}>;
/**
* End a single-use session. Discards the private key.
*/
endSingleUse(): void;
read(start: FactReference[], specification: Specification): Promise<ProjectedResult[]>;
fetch(start: FactReference[], specification: Specification): Promise<void>;
subscribe(start: FactReference[], specification: Specification): Promise<string[]>;
unsubscribe(feeds: string[]): void;
load(references: FactReference[]): Promise<FactEnvelope[]>;
getMruDate(specificationHash: string): Promise<Date | null>;
setMruDate(specificationHash: string, mruDate: Date): Promise<void>;
startObserver<U>(references: FactReference[], specification: Specification, resultAdded: ResultAddedFunc<U>, keepAlive: boolean): Observer<U>;
private factsAdded;
purge(): Promise<void>;
/**
* Processes the queue immediately, bypassing any delay.
* Only works if the fork is a PersistentFork.
*/
push(): Promise<void>;
}
//# sourceMappingURL=factManager.d.ts.map