/**
 * LLM 기반 Procedural Memory 추출기
 * Reflexion 결과를 LLM으로 구조화 추출하고, 실패 시 null을 반환하여 규칙 기반 fallback을 유도한다.
 */
import type { IProceduralMemoryExtractor, ExtractedProceduralMemory, ReflectionNotes } from '../../../shared/utils/procedural-memory-extractor.types.js';
import type { FailureEvent } from '../../monitoring/services/failure-detector.js';
export interface LlmProceduralExtractorOptions {
    /** 테스트용: 주입 시 실제 LLM 호출 없이 이 함수로 응답 대체 */
    completion?: (messages: Array<{
        role: string;
        content: string;
    }>) => Promise<string>;
}
/**
 * LLM을 사용해 reflection_notes에서 ExtractedProceduralMemory를 추출한다.
 * 파싱/네트워크 실패 시 null을 반환하여 호출자가 규칙 기반 fallback을 사용할 수 있게 한다.
 */
export declare class LlmProceduralExtractor implements IProceduralMemoryExtractor {
    private readonly completionFn?;
    private readonly retryManager;
    private initResult;
    private initPromise;
    constructor(options?: LlmProceduralExtractorOptions);
    extract(notes: ReflectionNotes | Record<string, unknown>, event?: FailureEvent): Promise<ExtractedProceduralMemory | null>;
    private buildMessages;
    private callLLM;
    private callOpenAI;
    private callGemini;
    /**
     * LLM 응답 문자열을 ExtractedProceduralMemory로 파싱.
     * 동작: 코드블록 제거 → JSON 파싱 → 필드 타입 정규화, 실패 시 null.
     */
    private parseResponse;
}
//# sourceMappingURL=procedural-llm-extractor.d.ts.map