/**
 * Triple 추출 LLM 단계: provider raw 호출, 파싱, 초기화 로깅.
 * TripleExtractionService에서 분리해 복잡도를 낮춘다.
 */
import type { GoogleGenerativeAI } from '@google/generative-ai';
import OpenAI from 'openai';
import type { LLMClientInitializationResult } from '../../../../shared/services/llm-client-initializer.js';
import type { Triple, TripleExtractionOptions, TripleExtractionResult } from '../../../../shared/types/triple-extraction.js';
import { type TripleLlmCallDeps } from './triple-extraction-llm-providers.js';
import type { TripleParser } from './triple-parser.js';
/** 테스트·런타임에서 동일 문구로 LLM 미가용 응답을 맞춘다. */
export declare const TRIPLE_EXTRACTION_LLM_UNAVAILABLE_MESSAGE = "LLM \uC11C\uBE44\uC2A4\uB97C \uC0AC\uC6A9\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. OPENAI_API_KEY \uB610\uB294 GEMINI_API_KEY\uB97C \uC124\uC815\uD558\uAC70\uB098 LLM_PROVIDER\uB97C \uBCC0\uACBD\uD574\uC8FC\uC138\uC694.";
export declare function createTripleLlmUnavailableResponse(message?: string): {
    result: TripleExtractionResult;
    rawLLMOutput: string;
};
export type TripleLlmActiveProvider = 'openai' | 'gemini' | 'ollama';
export declare function invokeTripleProviderRawOutput(params: {
    actualProvider: TripleLlmActiveProvider;
    openaiClient: OpenAI | null;
    geminiClient: GoogleGenerativeAI | null;
    deps: TripleLlmCallDeps;
    prompt: string;
    options: TripleExtractionOptions;
}): Promise<string>;
export type TripleParsePipelineOutcome = {
    ok: true;
    triples: Triple[];
    rawLLMOutput: string;
} | {
    ok: false;
    result: TripleExtractionResult;
    rawLLMOutput: string;
};
export declare function resolveTripleParseOrFailure(parser: TripleParser, rawLLMOutput: string): TripleParsePipelineOutcome;
export declare function logTripleExtractionClientInitResult(result: LLMClientInitializationResult): void;
//# sourceMappingURL=triple-extraction-llm-pipeline.d.ts.map