import type { Database } from 'better-sqlite3';
import type { EmbeddingProvider } from '../../../shared/types/embedding.types.js';
import type { EmbeddingMigrationPlan, EmbeddingMigrationTarget, MigrationHistoryRecord, MigrationMonitorOptions, MigrationProgress, MigrationResult, MigrationRollbackEntry } from '../../../shared/types/migration.types.js';
/**
 * 임베딩 마이그레이션 서비스
 * - 기존 임베딩 벡터를 목표 제공자의 차원에 맞게 재투영
 * - 마이그레이션 플랜/실행/진행 상태 관리
 */
export declare class EmbeddingMigrationService {
    private createSnapshot;
    private resolveRunStatus;
    private notifyProgress;
    private beginStep;
    private completeStep;
    createPlan(sourceProvider: EmbeddingProvider, targetProvider: EmbeddingProvider, overrides?: Partial<EmbeddingMigrationPlan>): EmbeddingMigrationPlan;
    listTargets(db: Database, plan: EmbeddingMigrationPlan, limit?: number): EmbeddingMigrationTarget[];
    initializeProgress(total: number, resumeFromId?: string): MigrationProgress;
    private resolveEffectiveMonitor;
    execute(db: Database, plan: EmbeddingMigrationPlan, monitor?: MigrationMonitorOptions): Promise<MigrationResult>;
    private processMigrationRow;
    private runMigrationBatchLoop;
    private finalizeMigrationExecution;
    private safeParseEmbedding;
    rollback(db: Database, entries: ReadonlyArray<MigrationRollbackEntry>): void;
    private applyRollbackDelete;
    private applyRollbackRestore;
    listHistory(db: Database, limit?: number): MigrationHistoryRecord[];
}
export declare const embeddingMigrationService: EmbeddingMigrationService;
//# sourceMappingURL=embedding-migration-service.d.ts.map