/**
 * Consolidation Score Worker
 * 배치 재계산 작업을 수행하는 워커 클래스
 *
 * - 시간당 증분 재계산: 최근 1~12시간 내 갱신된 레코드만 재계산
 * - 야간 전체 스윕: 전체 레코드 재계산
 * - 바닥값/상한 재적용
 */
import Database from 'better-sqlite3';
export interface ConsolidationScoreWorkerConfig {
    batchSize: number;
    chunkSize: number;
    delayBetweenChunks: number;
    incrementalHours: number;
    minScore: number;
    maxScore: number;
    pinnedMinScore: number;
    enableLogging: boolean;
    logProgressInterval: number;
}
export interface ConsolidationScoreRecalculationResult {
    jobType: 'incremental' | 'full_sweep';
    startTime: Date;
    endTime: Date;
    duration: number;
    success: boolean;
    processed: number;
    updated: number;
    skipped: number;
    errors: string[];
    warnings: string[];
    details?: {
        batchesProcessed: number;
        chunksProcessed: number;
        avgProcessingTime: number;
        minScore: number;
        maxScore: number;
        scoreDistribution?: {
            high: number;
            medium: number;
            low: number;
        };
    };
}
/**
 * Consolidation Score Worker
 */
export declare class ConsolidationScoreWorker {
    private config;
    private consolidationScoreService;
    constructor(config?: Partial<ConsolidationScoreWorkerConfig>);
    /**
     * 시간당 증분 재계산
     * 최근 N시간 내 갱신된 레코드만 재계산
     *
     * @param db 데이터베이스 연결
     * @param hours 재계산할 시간 범위 (기본값: config.incrementalHours)
     * @returns 재계산 결과
     */
    runIncrementalRecalculation(db: Database.Database, hours?: number): Promise<ConsolidationScoreRecalculationResult>;
    /**
     * 야간 전체 스윕
     * 전체 레코드 재계산
     *
     * @param db 데이터베이스 연결
     * @returns 재계산 결과
     */
    runFullSweep(db: Database.Database): Promise<ConsolidationScoreRecalculationResult>;
    /**
     * 최근 갱신된 레코드 조회
     * last_accessed_at 또는 created_at 기준으로 최근 N시간 내 레코드 조회
     */
    private fetchRecentRecords;
    /**
     * 전체 레코드 조회
     */
    private fetchAllRecords;
    /**
     * 청크 단위 처리
     */
    private processChunk;
    /**
     * 현재 consolidation_score 조회
     */
    private getCurrentScore;
    /**
     * 배열을 청크로 분할
     */
    private chunkArray;
    /**
     * 지연 함수
     */
    private delay;
    /**
     * 로깅
     */
    private log;
}
//# sourceMappingURL=consolidation-score-worker.d.ts.map