/** * Enhanced Code Index Database for Cross-Language Support * Extends the SQLite-backed CodeIndexDB with multi-language capabilities. * * TODO: Cross-language features (FTS5 search, dep graph, analysis) will get their * own dedicated schema and tests in a follow-up spec. For now, this provides * the SQLite tables and basic CRUD — enough for the tests to continue passing. */ import Database from 'better-sqlite3'; import { CodeIndexDB } from './codeIndexDB.js'; import { CrossLanguageEntity, CrossLanguageEntityDocument, CrossReference, CrossReferenceDocument, APIContract, APIContractDocument, CrossLanguageSearchOptions, CrossLanguageSearchResult, CrossLanguageAnalysisResult, DependencyGraph, MigrationOptions } from './types/crossLanguage.js'; interface LokiFindQuery { [key: string]: any; } declare class CrossLangCollectionAdapter { private db; private tableName; constructor(db: Database.Database, tableName: string); find(query?: LokiFindQuery): T[]; findOne(query: LokiFindQuery): T | null; insert(doc: T): T; update(doc: T): void; get(id: number): T | null; remove(doc: T): void; removeWhere(query: LokiFindQuery): void; clear(): void; private rowToDoc; } export declare class EnhancedCodeIndexDB extends CodeIndexDB { /** @internal — subclasses use these directly */ protected crossLanguageEntities: CrossLangCollectionAdapter; protected crossReferences: CrossLangCollectionAdapter; protected apiContracts: CrossLangCollectionAdapter; private enhancedInitialized; private migrationCompleted; constructor(dbPath?: string); /** * Initialize enhanced collections (SQLite tables). */ initializeEnhanced(): Promise; /** * Migrate existing data to cross-language format */ migrateToEnhanced(options?: MigrationOptions): Promise; /** * Add a cross-language entity to the index */ addCrossLanguageEntity(entity: CrossLanguageEntity): Promise; /** * Add cross-reference between entities */ addCrossReference(reference: CrossReference): Promise; /** * Add API contract for an entity */ addAPIContract(entityId: string, contract: APIContract): Promise; /** * Search cross-language entities (uses FTS5). */ searchCrossLanguage(query: string, options?: CrossLanguageSearchOptions): Promise; /** * Find entity by ID */ findEntityById(id: string): Promise; /** * Find entities by language */ findEntitiesByLanguage(language: string): Promise; /** * Find entities by type */ findEntitiesByType(type: CrossLanguageEntity['type']): Promise; /** * Get cross-references for an entity */ getCrossReferences(entityId: string): Promise; /** * Generate dependency graph */ generateDependencyGraph(languages?: string[]): Promise; /** * Get analysis summary */ getAnalysisSummary(): Promise; /** * Generate entity ID */ private generateEntityId; /** * Generate search tokens for an entity */ private generateSearchTokens; /** * Also clears cross-language derived collections. */ clearIndex(): Promise; } export {}; //# sourceMappingURL=codeIndexDB-enhanced.d.ts.map