/**
 * Entity Linker
 * Subject/Object 엔티티를 정규화하고 동일한 엔티티로 연결합니다.
 */
import type { EntityLinkingResult } from '../../../../shared/types/triple-extraction.js';
/**
 * Entity 사전
 * 표준 엔티티와 동의어 매핑
 *
 * 구조:
 * - key: 표준 엔티티 (canonical form)
 * - value: 동의어 배열
 */
interface EntityDictionary {
    [canonical: string]: string[];
}
export declare class EntityLinker {
    private dictionary;
    private reverseIndex;
    constructor(customDictionary?: EntityDictionary);
    /**
     * 역인덱스 구축 (동의어 -> 표준 엔티티)
     */
    private buildReverseIndex;
    /**
     * 검색용 키 정규화
     * 대소문자 무시, 공백 제거
     */
    private normalizeKey;
    /**
     * 구조화된 엔티티인지 확인 (예외 규칙 적용)
     * 숫자, 날짜, 시간 등은 변환하지 않음
     */
    private isStructuredEntity;
    /**
     * Entity Linking 및 정규화 수행
     *
     * @param entity 원본 엔티티 문자열
     * @returns EntityLinkingResult
     */
    link(entity: string): EntityLinkingResult;
    /**
     * 여러 엔티티 일괄 Linking
     */
    linkBatch(entities: string[]): EntityLinkingResult[];
    /**
     * 사전에 Entity 추가
     *
     * @param canonical 표준 엔티티
     * @param synonyms 동의어 배열
     */
    addEntity(canonical: string, synonyms: string[]): void;
}
export {};
//# sourceMappingURL=entity-linker.d.ts.map