import type { SQLInputValue } from "node:sqlite"; import type { IDataProvider, VectorResult, VectorPoint, GraphNode, GraphEdge, SessionEntry, SymbolEntry, SymbolKind, FileMeta, ImportEntry, AuditEntry, ContextReceipt, Rule } from "@devflow-tools/sdk"; export declare class LocalDataProvider implements IDataProvider { private db; constructor(_root: string, options?: { dbPath?: string; }); private initSchema; close(): void; vectorSearch(_collection: string, _query: number[], _limit: number): Promise; vectorUpsert(_collection: string, _points: VectorPoint[]): Promise; vectorDelete(_collection: string, _ids: string[]): Promise; graphGetAll(): Promise<{ nodes: GraphNode[]; edges: GraphEdge[]; }>; graphGetNode(_id: string): Promise; graphGetEdges(_nodeId: string, _direction: "in" | "out"): Promise; graphUpsertNodes(_nodes: GraphNode[]): Promise; graphUpsertEdges(_edges: GraphEdge[]): Promise; graphClear(): Promise; kvGet(key: string): Promise; kvSet(key: string, value: unknown): Promise; kvDelete(key: string): Promise; kvGetPrefix(prefix: string): Promise>; sessionGet(sessionId: string): Promise; sessionAppend(sessionId: string, entry: SessionEntry): Promise; sessionCreate(sessionId: string, task: string): Promise; sessionClose(sessionId: string): Promise; sqlQuery(sql: string, params?: SQLInputValue[]): Promise; sqlExecute(sql: string, params?: SQLInputValue[]): Promise; recordToolCall(tool: string, args: Record, durationMs: number, error?: string): Promise; getToolCallStats(): Promise<{ total: number; byTool: Record; recent: Array<{ tool: string; timestamp: number; durationMs: number; error?: string; }>; }>; private _auditSecret; auditGetSecret(): Promise; auditAppend(entry: AuditEntry): Promise; auditGetAll(): Promise; ruleSave(rule: Rule): Promise; ruleGetAll(options?: { includeDisabled?: boolean; }): Promise; ruleDelete(id: string): Promise; contextReceiptPut(receipt: ContextReceipt): Promise; contextReceiptGet(projectRoot: string, sessionId: string, executionId: string): Promise; contextReceiptDelete(projectRoot: string, sessionId: string, executionId?: string): Promise; insertSymbols(_symbols: SymbolEntry[]): Promise; insertFiles(_files: FileMeta[]): Promise; insertImports(_imports: ImportEntry[]): Promise; findSymbols(_name: string): Promise; findSymbolsByKind(_kind: SymbolKind): Promise; getSymbolsInFile(_file: string): Promise; getFileCount(): Promise; getSymbolCount(): Promise; }