import type { Context } from 'koishi'; import type { MemoryJobRecord } from '../../contracts/memory'; import type { MemoryVectorIndexManifest } from '../../contracts/vector_index'; import { type VectorIndexEmbeddingContext } from './embedding'; import { type VectorIndexJobRepository } from './job_runner'; import type { VectorIndexOperationGate } from './operation_gate'; import { type VectorIndexReconcileRepository } from './reconcile'; import { type VectorIndexRebuildRepository } from './rebuild'; import type { LivingMemoryVectorIndexWorkerClient } from './worker_client'; import type { VectorIndexInspection } from './worker_protocol'; import type { LivingMemoryLogger } from '../logging/logger'; export interface LivingMemoryVectorIndexRepository extends VectorIndexRebuildRepository, VectorIndexReconcileRepository, VectorIndexJobRepository { countEntries(): Promise; hasMigratedLegacyEmbeddings(): Promise; completeLegacyEmbeddingMigration(): Promise; } interface VectorIndexMaintenanceOptions { ctx: Context; config: { embeddingModel: string; debug: boolean; }; repository: LivingMemoryVectorIndexRepository; worker: () => LivingMemoryVectorIndexWorkerClient; operationGate: VectorIndexOperationGate; schemaVersion: number; indexDirectory: string; previousDatabaseDirectory: string; finalizeRebuild: (input: { rebuildDatabaseDirectory: string; expectedCount: number; manifest: MemoryVectorIndexManifest; }, transferCleanupOwnership: () => void) => Promise; shouldStop: () => boolean; onBuilding: (jobId: string) => void; onCurrentJobChanged: (jobId: string | null) => void; onInspection: (inspection: VectorIndexInspection) => void; onEmbeddingContext: (context: VectorIndexEmbeddingContext) => void; logger: LivingMemoryLogger; } export declare class LivingMemoryVectorIndexMaintenance { private readonly options; private readonly jobRunner; constructor(options: VectorIndexMaintenanceOptions); initialize(inspection: VectorIndexInspection): Promise; rebuild(reason: string): Promise; private maintainDreamAnnIndex; createPresetReconcileJob(presetId: string, reason: string): Promise; runPresetReconcileJob(job: MemoryJobRecord, reason: string): Promise; private createEmbeddings; private createEmbeddingContext; private resolveRebuildReason; private runRebuildJob; private runReconcileJob; private reconcileAllPresets; private reportReconcileProgress; } export {};