import { BaseNode } from "../../Node.js";
export interface RefDocInfo {
    nodeIds: string[];
    extraInfo: Record<string, any>;
}
export declare abstract class BaseDocumentStore {
    persist(persistPath?: string): void;
    abstract docs(): Promise<Record<string, BaseNode>>;
    abstract addDocuments(docs: BaseNode[], allowUpdate: boolean): Promise<void>;
    abstract getDocument(docId: string, raiseError: boolean): Promise<BaseNode | undefined>;
    abstract deleteDocument(docId: string, raiseError: boolean): Promise<void>;
    abstract documentExists(docId: string): Promise<boolean>;
    abstract setDocumentHash(docId: string, docHash: string): Promise<void>;
    abstract getDocumentHash(docId: string): Promise<string | undefined>;
    abstract getAllDocumentHashes(): Promise<Record<string, string>>;
    abstract getAllRefDocInfo(): Promise<Record<string, RefDocInfo> | undefined>;
    abstract getRefDocInfo(refDocId: string): Promise<RefDocInfo | undefined>;
    abstract deleteRefDoc(refDocId: string, raiseError: boolean): Promise<void>;
    getNodes(nodeIds: string[], raiseError?: boolean): Promise<BaseNode[]>;
    getNode(nodeId: string, raiseError?: boolean): Promise<BaseNode>;
    getNodeDict(nodeIdDict: {
        [index: number]: string;
    }): Promise<Record<number, BaseNode>>;
}
