export interface CrossProject { id: string; path: string; name: string; role: string; lastIndexedAt: number; gitSha: string; } export interface InterfaceContract { id?: number; projectId: string; interfaceType: string; sourceFile: string; symbolName: string; symbolKind: string; signature?: string; fileLine?: number; contentHash: string; } export interface CrossEdge { id?: number; consumerProjectId: string; consumerFile: string; consumerSymbol: string; consumerLine?: number; contractId: number; edgeType: string; confidence: number; } export declare class CrossRepoDb { private db; constructor(dbPath: string); upsertProject(id: string, path: string, name: string, role: string, gitSha: string): void; getProject(id: string): CrossProject | null; listProjects(): CrossProject[]; upsertContract(contract: InterfaceContract): void; getContractsForProject(projectId: string): InterfaceContract[]; getContractBySymbol(symbolName: string, interfaceType?: string): InterfaceContract[]; deleteContractsForProject(projectId: string): void; upsertCrossEdge(edge: CrossEdge): void; getCrossEdgesForContract(contractId: number): CrossEdge[]; getCrossEdgesForProject(projectId: string): CrossEdge[]; deleteCrossEdgesForProject(projectId: string): void; isProjectStale(projectId: string, currentSha: string): boolean; close(): void; private mapProject; private mapContract; private mapEdge; }