/** * CodeAtlasStore — persistence contract for Code Atlas data * * @experimental * This interface is EXPERIMENTAL for 1.0.0. It may change in 1.0.x or 1.1 * without semver breakage guarantees. */ import type { CodeUnit } from "../../atlas/schemas/code-unit.js"; import type { CodeAtlasRun } from "../../atlas/schemas/code-atlas-run.js"; /** * @experimental * CodeAtlasStore — persistence contract for Code Atlas data. * * This interface is EXPERIMENTAL for 1.0.0. It may change in 1.0.x or 1.1 * without semver breakage guarantees. */ export interface CodeAtlasStore { insertCodeUnit(unit: CodeUnit): Promise; insertCodeUnitBatch(units: CodeUnit[]): Promise<{ inserted: number; }>; getCodeUnitById(id: string): Promise; listCodeUnitsByRepo(repoId: string, options?: { limit?: number; offset?: number; }): Promise<{ items: CodeUnit[]; total: number; }>; deleteCodeUnitsByRepo(repoId: string): Promise<{ deleted: number; }>; saveCodeAtlasRun(run: CodeAtlasRun): Promise; getCodeAtlasRunById(id: string): Promise; listCodeAtlasRuns(options?: { limit?: number; offset?: number; }): Promise<{ items: CodeAtlasRun[]; total: number; }>; close(): Promise; }