import { openConnection } from '../db/connection.js'; import type { VectorSearchBackend } from '../embedding/types.js'; import { type RepositoryLocation } from '../repository/binding.js'; import { initializeDatabase } from './init.js'; export interface DoctorCheck { ok: boolean; count?: number; detail?: string; } export interface DoctorResult { ok: boolean; databasePath: string; currentVersion: number; capabilities: Awaited>['capabilities'] | null; integrity: string; fts5: boolean; checks: { integrity: DoctorCheck; foreignKeys: DoctorCheck; entryRevisions: DoctorCheck; revisionTags: DoctorCheck; deliveryRevisions: DoctorCheck; revisionHashes: DoctorCheck; migrations: DoctorCheck; fts: DoctorCheck; danglingLinks: DoctorCheck; contradictions: DoctorCheck; bindings: DoctorCheck; agentFiles: DoctorCheck; permissions: DoctorCheck; secrets: DoctorCheck; ledger: DoctorCheck; nudgeDeliveries: DoctorCheck; runtime: DoctorCheck; hybridSearch: DoctorCheck; embeddings: DoctorCheck; codexMcp: DoctorCheck; }; } export interface DoctorOptions { databasePath?: string; migrationsDirectory?: string; runtimeDescriptorPath?: string; embeddingEnvironment?: NodeJS.ProcessEnv; embeddingBackend?: VectorSearchBackend; } export interface DoctorDependencies { openConnection?: typeof openConnection; } export interface DoctorPromptOptions { input?: NodeJS.ReadableStream; output?: NodeJS.WritableStream; } /** Ask before removing registry rows for repository roots that no longer exist. */ export declare function promptRemoveMissingRepositoryLocations(locations: readonly RepositoryLocation[], options?: DoctorPromptOptions): Promise; export declare function runDoctor(options?: DoctorOptions, dependencies?: DoctorDependencies): Promise; //# sourceMappingURL=doctor.d.ts.map