/**
 * MiniLM 임베딩 서비스
 * all-MiniLM-L6-v2 모델을 사용한 경량 임베딩 서비스
 *
 * 클린코드 원칙:
 * - 단일 책임 원칙: 임베딩 생성만 담당
 * - 의존성 역전: 인터페이스에 의존
 * - 개방-폐쇄: 확장에는 열려있고 수정에는 닫혀있음
 */
import type { EmbeddingServiceInterface, EmbeddingResult, SimilarityResult, EmbeddingData } from '../../../shared/types/embedding.types.js';
export declare class MiniLMEmbeddingService implements EmbeddingServiceInterface {
    private static readonly MODEL_NAME;
    private static readonly DIMENSIONS;
    private static readonly MAX_TOKENS;
    private static readonly CACHE_TTL;
    private readonly modelName;
    private readonly dimensions;
    private readonly maxTokens;
    private model;
    private loadingPromise;
    private readonly cache;
    constructor();
    /**
     * 텍스트를 임베딩 벡터로 변환
     * TDD: 빈 텍스트 검증, 모델 로딩, 캐싱 적용
     */
    generateEmbedding(text: string): Promise<EmbeddingResult | null>;
    /**
     * 쿼리와 유사한 임베딩 검색
     * TDD: 빈 배열 처리, 임계값 적용, 개수 제한
     */
    searchSimilar(query: string, embeddings: EmbeddingData[], limit?: number, threshold?: number): Promise<SimilarityResult[]>;
    /**
     * 서비스 사용 가능 여부 확인
     * TDD: 모델 로딩 상태 확인
     */
    isAvailable(): boolean;
    /**
     * 모델 정보 반환
     * TDD: 올바른 정보 반환
     */
    getModelInfo(): {
        model: string;
        dimensions: number;
        maxTokens: number;
    };
    /**
     * 입력 검증
     * 클린코드: 단일 책임 원칙 - 검증만 담당
     */
    private validateInput;
    /**
     * 모델 로딩 (지연 로딩)
     * 클린코드: 단일 책임 원칙 - 모델 로딩만 담당
     */
    private getModel;
    /**
     * 실제 모델 로딩
     * Node.js 환경에서 Worker 스레드 문제를 방지하기 위해 옵션 설정
     *
     * 왜 Worker 스레드를 비활성화하는가?
     * - Node.js 환경에서 onnxruntime-web의 Worker가 blob URL을 지원하지 않음
     * - ERR_WORKER_PATH 에러 발생 시 TF-IDF fallback으로 전환
     * - fallback 시 차원 정보(512)가 명시적으로 전달되어야 함
     */
    private loadModel;
    /**
     * 텍스트 전처리
     * 클린코드: 단일 책임 원칙 - 전처리만 담당
     */
    private preprocessText;
    /**
     * 캐시 키 생성
     */
    private generateCacheKey;
    /**
     * 텍스트 해시 생성
     */
    private hashText;
    /**
     * 토큰 수 추정
     */
    private estimateTokens;
    /**
     * 코사인 유사도 계산
     * 클린코드: 단일 책임 원칙 - 수학 계산만 담당
     */
    private calculateCosineSimilarity;
    /**
     * 캐시 정리
     */
    clearCache(): void;
    /**
     * 메모리 사용량 확인
     */
    getCacheSize(): number;
}
//# sourceMappingURL=minilm-embedding-service.d.ts.map