/**
 * 벡터 검색 서비스
 * 단일 책임 원칙(SRP) 적용 - 검색 기능만 담당
 */
import type { VectorSearchQuery, VectorSearchResult, VectorSearchOptions, ProviderHybridQuery, ProviderHybridResult, UnifiedSearchResponse } from '../../../../shared/types/vector-search.types.js';
import type { VectorSearchRepository } from '../../../../shared/interfaces/database.interface.js';
import { UnifiedEmbeddingService } from '../../../embedding/services/unified-embedding-service.js';
export declare class VectorSearchService {
    private repository;
    private config;
    constructor(repository: VectorSearchRepository, config?: import("../../../../shared/types/vector-search.types.js").VectorSearchConfig);
    /**
     * 벡터 검색 실행
     */
    search(query: VectorSearchQuery): Promise<VectorSearchResult[]>;
    /**
     * 하이브리드 검색 실행
     */
    hybridSearch(query: VectorSearchQuery): Promise<VectorSearchResult[]>;
    providerHybridSearch(embeddingService: UnifiedEmbeddingService, baseQuery: ProviderHybridQuery): Promise<ProviderHybridResult[]>;
    unifiedSearch(embeddingService: UnifiedEmbeddingService, baseQuery: ProviderHybridQuery): Promise<UnifiedSearchResponse>;
    /**
     * 검색 쿼리 유효성 검증
     */
    private validateQuery;
    private validateProviderHybridQuery;
    private getExpectedDimensions;
    /**
     * 기본 옵션 적용
     */
    applyDefaultOptions(options: VectorSearchOptions): VectorSearchOptions;
}
//# sourceMappingURL=vector-search.service.d.ts.map