import type { GraphNode, GraphEdge } from "../types/graph.js"; import type { SessionEntry } from "../types/memory.js"; import type { SymbolEntry, SymbolKind, FileMeta, ImportEntry } from "../types/context.js"; import type { SQLInputValue } from "node:sqlite"; import type { AuditEntry, ContextReceipt, Rule } from "../types/enforcer.js"; export interface VectorResult { id: string; score: number; metadata?: Record; } export interface VectorPoint { id: string; vector: number[]; metadata?: Record; } export interface IDataProvider { 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; 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; 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; }>; }>; auditAppend(entry: AuditEntry): Promise; auditGetAll(): Promise; auditGetSecret(): 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; } //# sourceMappingURL=IDataProvider.d.ts.map