/**
 * Triple 추출 전용 로거
 *
 * rawLLMOutput을 로그 파일에 저장합니다.
 *
 * 보안 정책:
 * - PII/비밀 정보 마스킹 적용
 * - logs/triple-extraction/ 디렉토리에 저장
 * - 날짜별 파일로 저장 (예: 2025-01-15.log)
 * - 30일 로테이션 (2.16에서 구현)
 * - 성공 케이스 10% 샘플링, 실패 케이스 100% 저장 (2.15에서 구현)
 */
import type { TripleExtractionResult } from '../../shared/types/triple-extraction.js';
/**
 * Triple 추출 로그 엔트리
 */
export interface TripleExtractionLogEntry {
    timestamp: string;
    memory_id?: string;
    extraction_result: 'success' | 'failed';
    triples_count: number;
    failure_reason?: string;
    steps?: {
        canonicalization: boolean;
        entityLinking: boolean;
    };
    raw_llm_output?: string;
    observation_preview?: string;
}
/**
 * Triple 추출 로거 설정
 */
export interface TripleExtractionLoggerConfig {
    /**
     * 로그 디렉토리 (기본: process.cwd()/logs/triple-extraction)
     */
    logDir?: string;
    /**
     * 로깅 활성화 여부 (기본: true)
     */
    enabled?: boolean;
    /**
     * PII 마스킹 활성화 여부 (기본: true)
     */
    enablePIIMasking?: boolean;
}
/**
 * Triple 추출 전용 로거
 */
export declare class TripleExtractionLogger {
    private config;
    private logDir;
    constructor(config?: TripleExtractionLoggerConfig);
    /**
     * Triple 추출 결과 로깅
     *
     * @param result Triple 추출 결과
     * @param memoryId Episodic Memory ID (선택사항)
     * @param observation Observation 텍스트 (선택사항, 미리보기용)
     */
    logExtraction(result: TripleExtractionResult, memoryId?: string, observation?: string): Promise<void>;
    /**
     * 로그 엔트리 생성
     */
    private createLogEntry;
    /**
     * 로그 디렉토리 생성
     */
    private ensureLogDirectory;
    /**
     * 날짜별 로그 파일 경로 반환
     * 형식: YYYY-MM-DD.log
     *
     * PRD 0019: 보안 강화 (Phase 1) - Path Traversal 방지
     * 파일 경로 검증 적용
     */
    private getLogFilePath;
    /**
     * 로그 파일 목록 조회
     *
     * PRD 0019: 보안 강화 (Phase 1) - Path Traversal 방지
     * 파일 경로 검증 적용
     *
     * @returns 로그 파일 경로 배열
     */
    listLogFiles(): Promise<string[]>;
    /**
     * 오래된 로그 파일 삭제 (30일 이상)
     *
     * @param retentionDays 보존 기간 (일) (기본: 30일)
     */
    deleteOldLogs(retentionDays?: number): Promise<number>;
}
/**
 * 싱글톤 인스턴스
 */
export declare const tripleExtractionLogger: TripleExtractionLogger;
//# sourceMappingURL=triple-extraction-logger.d.ts.map