/**
 * 클러스터 요약 — LLM(가능 시) 또는 extractive fallback.
 *
 * FR-009(한 클러스터 실패 시 나머지 계속)는 `SleepConsolidationService` 루프에서 처리한다.
 * 여기서는 LLM 호출 실패 시 extractive로 전환해 빈 요약만 피한다(스킵·에러 집계는 상위 담당).
 */
import type { EpisodicCandidateRow } from '../repositories/consolidation-repository.js';
export type SummarizationMethod = 'llm' | 'extractive';
export interface SummarizeClusterInput {
    clusterEpisodes: EpisodicCandidateRow[];
}
export declare class SummarizationService {
    hasLlmConfigured(): boolean;
    extractiveFallback(episodes: EpisodicCandidateRow[]): {
        content: string;
        method: SummarizationMethod;
    };
    /**
     * LLM 키가 있으면 OpenAI Chat Completions (gpt-4o-mini 기본) 호출, 실패 시 extractive
     */
    summarizeCluster(input: SummarizeClusterInput): Promise<{
        content: string;
        method: SummarizationMethod;
    }>;
    /**
     * 기존 시맨틱 본문 + 신규 에피소딕 묶음을 하나의 시맨틱으로 재요약 (병합 경로)
     */
    summarizeMergeForConsolidation(input: {
        existingSemanticContent: string;
        clusterEpisodes: EpisodicCandidateRow[];
    }): Promise<{
        content: string;
        method: SummarizationMethod;
    }>;
}
//# sourceMappingURL=summarization-service.d.ts.map