/**
 * 마이그레이션 로깅 시스템
 *
 * 마이그레이션 실행 과정을 로그 파일에 기록합니다.
 */
import type { MigrationResult } from './types.js';
/**
 * 로그 레벨
 */
export declare enum LogLevel {
    INFO = "INFO",
    WARN = "WARN",
    ERROR = "ERROR",
    DEBUG = "DEBUG"
}
/**
 * 로그 엔트리
 */
export interface LogEntry {
    timestamp: Date;
    level: LogLevel;
    message: string;
    data?: any;
}
/**
 * 마이그레이션 로거
 */
export declare class MigrationLogger {
    private logDir;
    private logFile;
    private entries;
    /** true면 파일 로그만 건너뜀(읽기 전용 볼륨 등). 콘솔 로그는 유지. */
    private fileLoggingDisabled;
    constructor(logDir?: string);
    /**
     * 로그 디렉토리 생성
     */
    private ensureLogDirectory;
    /**
     * 파일 로깅이 비활성화인지(테스트·진단용)
     */
    isFileLoggingDisabled(): boolean;
    /**
     * 로그 파일 초기화
     */
    initializeLogFile(migrationVersion: string): void;
    /**
     * 로그 기록
     */
    log(level: LogLevel, message: string, data?: any): void;
    /**
     * INFO 레벨 로그
     */
    info(message: string, data?: any): void;
    /**
     * WARN 레벨 로그
     */
    warn(message: string, data?: any): void;
    /**
     * ERROR 레벨 로그
     */
    error(message: string, data?: any): void;
    /**
     * DEBUG 레벨 로그
     */
    debug(message: string, data?: any): void;
    /**
     * 마이그레이션 결과 기록
     */
    logMigrationResult(result: MigrationResult): void;
    /**
     * 로그 파일에 쓰기
     */
    private writeToFile;
    /**
     * 로그 파일 경로 반환
     */
    getLogFile(): string | null;
    /**
     * 로그 엔트리 조회
     */
    getEntries(): LogEntry[];
    /**
     * 로그 디렉토리 경로 반환
     */
    getLogDirectory(): string;
}
//# sourceMappingURL=migration-logger.d.ts.map