/**
 * FTS5 Migration Status 유틸리티
 *
 * FTS5 reflection_notes 마이그레이션 상태를 관리하는 유틸리티 함수를 제공합니다.
 * Fallback 전략을 위해 마이그레이션 상태를 추적하고 관리합니다.
 */
import type Database from 'better-sqlite3';
export type FTS5MigrationStatus = 'pending' | 'in_progress' | 'completed' | 'failed';
/**
 * 마이그레이션 상태 테이블 초기화
 * 테이블이 없으면 생성하고, 초기 상태 'pending' 삽입
 */
export declare function initializeMigrationStatusTable(db: Database.Database): void;
/**
 * 마이그레이션 상태 조회
 *
 * @param db - 데이터베이스 인스턴스
 * @returns 마이그레이션 상태
 */
export declare function getMigrationStatus(db: Database.Database): FTS5MigrationStatus;
/**
 * 마이그레이션 상태 업데이트
 *
 * @param db - 데이터베이스 인스턴스
 * @param status - 새로운 상태
 * @param errorMessage - 에러 메시지 (실패 시)
 * @throws Error - 상태 전이 검증 실패 시
 */
export declare function setMigrationStatus(db: Database.Database, status: FTS5MigrationStatus, errorMessage?: string): void;
/**
 * 마이그레이션 상태를 config에 로드 및 캐시
 *
 * @param db - 데이터베이스 인스턴스
 */
export declare function loadMigrationStatusToConfig(db: Database.Database): void;
/**
 * 마이그레이션 상태가 완료되었는지 확인
 *
 * @param db - 데이터베이스 인스턴스 (선택적, 없으면 config 캐시 사용)
 * @returns 완료 여부
 */
export declare function isMigrationCompleted(db?: Database.Database): boolean;
/**
 * 마이그레이션 상태가 실패했는지 확인
 *
 * @param db - 데이터베이스 인스턴스 (선택적, 없으면 config 캐시 사용)
 * @returns 실패 여부
 */
export declare function isMigrationFailed(db?: Database.Database): boolean;
/**
 * Fallback이 필요한지 확인 (마이그레이션 실패 또는 대기 중)
 *
 * @param db - 데이터베이스 인스턴스 (선택적, 없으면 config 캐시 사용)
 * @returns Fallback 필요 여부
 */
export declare function shouldUseFallback(db?: Database.Database): boolean;
/**
 * 마이그레이션 재시도 준비
 * 실패한 마이그레이션을 재시도하기 위해 상태를 'pending'으로 되돌립니다.
 *
 * @param db - 데이터베이스 인스턴스
 */
export declare function prepareMigrationRetry(db: Database.Database): void;
/**
 * 마이그레이션 상태를 강제로 업데이트 (관리자용)
 *
 * @param db - 데이터베이스 인스턴스
 * @param status - 새로운 상태
 * @param errorMessage - 에러 메시지 (선택적)
 */
export declare function forceSetMigrationStatus(db: Database.Database, status: FTS5MigrationStatus, errorMessage?: string): void;
//# sourceMappingURL=fts5-migration-status.d.ts.map