/**
 * Migration: 011 - Meta Memory Statistics Schema
 * Description: Create meta_memory_stats table for collecting recall statistics
 * Version: 11.0
 * Date: 2025-01-XX
 */
import type Database from 'better-sqlite3';
import type { Migration } from '../types.js';
/**
 * Meta Memory Statistics Schema Migration
 *
 * This migration:
 * 1. Creates meta_memory_stats table for tracking recall statistics
 * 2. Creates indexes for performance optimization
 * 3. Creates trigger for auto-updating updated_at timestamp
 */
export declare class MetaMemoryStatsSchemaMigration implements Migration {
    version: string;
    name: string;
    description: string;
    /**
     * Load SQL file content
     * @param filename SQL 파일명
     * @returns SQL 파일 내용
     * @throws {Error} 파일을 읽을 수 없을 때
     */
    private loadSQLFile;
    /**
     * Execute SQL script
     * Removes transaction commands (BEGIN TRANSACTION, COMMIT) as MigrationRunner manages transactions
     * @param db 데이터베이스 인스턴스
     * @param sql 실행할 SQL 스크립트
     * @throws {Error} SQL 실행 실패 시
     */
    private executeSQL;
    /**
     * Check if table exists
     * @param db 데이터베이스 인스턴스
     * @param tableName 확인할 테이블명
     * @returns 테이블 존재 여부
     */
    private tableExists;
    /**
     * Check if column exists in table
     * @param db 데이터베이스 인스턴스
     * @param tableName 확인할 테이블명
     * @param columnName 확인할 컬럼명
     * @returns 컬럼 존재 여부
     */
    private columnExists;
    /**
     * Check if index exists
     * @param db 데이터베이스 인스턴스
     * @param indexName 확인할 인덱스명
     * @returns 인덱스 존재 여부
     */
    private indexExists;
    /**
     * Check if trigger exists
     * @param db 데이터베이스 인스턴스
     * @param triggerName 확인할 트리거명
     * @returns 트리거 존재 여부
     */
    private triggerExists;
    /**
     * Validate before migration
     */
    validateBefore(db: Database.Database): Promise<void>;
    /**
     * Execute migration (Up)
     */
    up(db: Database.Database): Promise<void>;
    /**
     * Rollback migration (Down)
     * @param db 데이터베이스 인스턴스
     * @throws {Error} 롤백 실패 시
     */
    down(db: Database.Database): Promise<void>;
    /**
     * Verify table structure (columns and primary key)
     * @param db 데이터베이스 인스턴스
     * @throws {Error} 검증 실패 시
     */
    private verifyTableStructure;
    /**
     * Verify indexes and trigger
     * @param db 데이터베이스 인스턴스
     * @throws {Error} 검증 실패 시
     */
    private verifyIndexesAndTrigger;
    /**
     * Verify foreign key constraint
     * @param db 데이터베이스 인스턴스
     * @throws {Error} 검증 실패 시
     */
    private verifyForeignKeyConstraint;
    /**
     * Validate after migration
     * @param db 데이터베이스 인스턴스
     * @throws {Error} 검증 실패 시
     */
    validateAfter(db: Database.Database): Promise<void>;
}
//# sourceMappingURL=011-meta-memory-stats-schema.d.ts.map