import { Specification } from "../specification/specification";
import { FactEnvelope, ProjectedResult, Storage } from '../storage';
export interface SpecificationListener {
    onResult(results: ProjectedResult[]): Promise<void>;
}
export declare class ObservableSource {
    private store;
    private listenersByTypeAndSpecification;
    constructor(store: Storage);
    notify(saved: FactEnvelope[]): Promise<void>;
    addSpecificationListener(specification: Specification, onResult: (results: ProjectedResult[]) => Promise<void>): SpecificationListener;
    removeSpecificationListener(specificationListener: SpecificationListener): void;
    private notifyFactSaved;
}
//# sourceMappingURL=observable.d.ts.map