/**
 * Predicate 정규화기 (Canonicalizer)
 * 동의어/유사 표현을 표준 predicate로 변환합니다.
 *
 * AriGraph 논문을 참고하여 구현되었으며, 지식 그래프의 일관성을 보장합니다.
 */
import type { PredicateCanonicalizationResult } from '../../../../shared/types/triple-extraction.js';
/**
 * Predicate 사전
 * 표준 predicate와 동의어 매핑
 *
 * 구조:
 * - key: 표준 predicate (canonical form)
 * - value: 동의어 배열
 */
interface PredicateDictionary {
    [canonical: string]: string[];
}
/**
 * Predicate 정규화기
 */
export declare class PredicateCanonicalizer {
    private dictionary;
    private reverseIndex;
    constructor(customDictionary?: PredicateDictionary);
    /**
     * 역인덱스 구축 (동의어 -> 표준 predicate)
     */
    private buildReverseIndex;
    /**
     * 키 정규화 (검색용)
     * 대소문자 무시, 공백 제거
     */
    private normalizeKey;
    /**
     * Predicate 정규화
     *
     * @param predicate 원본 predicate
     * @returns 정규화 결과
     */
    canonicalize(predicate: string): PredicateCanonicalizationResult;
    /**
     * 여러 Predicate 일괄 정규화
     */
    canonicalizeBatch(predicates: string[]): PredicateCanonicalizationResult[];
    /**
     * 사전에 Predicate 추가
     *
     * @param canonical 표준 predicate
     * @param synonyms 동의어 배열
     */
    addPredicate(canonical: string, synonyms: string[]): void;
    /**
     * 사전 조회 (테스트/디버깅용)
     */
    getDictionary(): Readonly<PredicateDictionary>;
    /**
     * 표준 predicate 목록 조회
     */
    getCanonicalPredicates(): string[];
}
export {};
//# sourceMappingURL=predicate-canonicalizer.d.ts.map