import { Observable } from "rxjs";
import { ConvoEdge, ConvoEdgeSide, ConvoGraphDb, ConvoGraphStore, ConvoGraphStoreEvt, ConvoNode, ConvoSourceNode, ConvoTraverser, IHasConvoGraphDb } from "./convo-graph-types";
export interface ConvoMemoryGraphStoreOptions {
    db?: Partial<ConvoGraphDb>;
    graphId: string;
}
export declare class ConvoMemoryGraphStore implements ConvoGraphStore, IHasConvoGraphDb {
    readonly graphId: string;
    db: ConvoGraphDb;
    private readonly _onDbChange;
    get onDbChange(): Observable<ConvoGraphStoreEvt>;
    constructor({ graphId, db, }: ConvoMemoryGraphStoreOptions);
    saveChangesAsync(): Promise<void>;
    getNodeAsync(id: string): Promise<ConvoNode | undefined>;
    putNodeAsync(node: ConvoNode): Promise<void>;
    deleteNodeAsync(id: string): Promise<void>;
    getNodeEdgesAsync(nodeId: string, side: ConvoEdgeSide): Promise<ConvoEdge[]>;
    getEdgeAsync(id: string): Promise<ConvoEdge | undefined>;
    putEdgeAsync(edge: ConvoEdge): Promise<void>;
    deleteEdgeAsync(id: string): Promise<void>;
    getTraverserAsync(id: string): Promise<ConvoTraverser | undefined>;
    putTraverserAsync(traverser: ConvoTraverser): Promise<void>;
    deleteTraverserAsync(id: string): Promise<void>;
    getSourceNodesAsync(): Promise<ConvoSourceNode[]>;
    getSourceNodeAsync(id: string): Promise<ConvoSourceNode | undefined>;
    putSourceNodeAsync(sourceNode: ConvoSourceNode): Promise<void>;
    deleteSourceNodeAsync(id: string): Promise<void>;
}
