/**
 * 마이그레이션 자동 감지 시스템
 *
 * migrations/ 디렉토리에서 마이그레이션 스크립트를 자동으로 감지하고,
 * 현재 스키마 버전과 비교하여 실행해야 할 마이그레이션을 찾습니다.
 */
import type Database from 'better-sqlite3';
import type { Migration } from './types.js';
/**
 * 마이그레이션 감지 결과
 */
export interface DetectedMigration {
    /**
     * 마이그레이션 인스턴스
     */
    migration: Migration;
    /**
     * 마이그레이션 파일 경로
     */
    filePath: string;
    /**
     * 마이그레이션 버전 번호 (숫자)
     */
    versionNumber: number;
}
/**
 * 마이그레이션 감지 결과
 */
export interface MigrationDetectionResult {
    /**
     * 실행해야 할 마이그레이션 목록 (버전 순서대로 정렬됨)
     */
    pendingMigrations: DetectedMigration[];
    /**
     * 이미 실행된 마이그레이션 목록
     */
    appliedMigrations: DetectedMigration[];
    /**
     * 현재 스키마 버전
     */
    currentVersion: string | null;
}
/**
 * 마이그레이션 자동 감지기
 */
export declare class MigrationDetector {
    private migrationsDir;
    constructor(migrationsDir?: string);
    /**
     * 모든 마이그레이션 파일 감지
     */
    detectAllMigrations(): Promise<DetectedMigration[]>;
    /**
     * 실행해야 할 마이그레이션 감지
     */
    detectPendingMigrations(db: Database.Database): Promise<MigrationDetectionResult>;
    /**
     * 버전 문자열을 숫자로 변환
     * 예: "002" -> 2, "001" -> 1
     */
    private parseVersionNumber;
    /**
     * 특정 버전의 마이그레이션 찾기
     */
    findMigrationByVersion(version: string | undefined): Promise<DetectedMigration | null>;
}
//# sourceMappingURL=migration-detector.d.ts.map