/**
 * 벡터 검색 파사드
 * 의존성 주입을 통한 통합 인터페이스 제공
 */
import type { VectorSearchQuery, VectorSearchResult, VectorIndexStatus, PerformanceTestResult, ProviderHybridQuery, ProviderHybridResult, UnifiedSearchResponse } from '../../../../shared/types/vector-search.types.js';
import type { VectorSearchRepository, VectorIndexRepository, VectorPerformanceRepository } from '../../../../shared/interfaces/database.interface.js';
import { UnifiedEmbeddingService } from '../../../embedding/services/unified-embedding-service.js';
export declare class VectorSearchFacade {
    private searchService;
    private indexManager;
    private performanceTester;
    constructor(searchRepository: VectorSearchRepository, indexRepository: VectorIndexRepository, performanceRepository: VectorPerformanceRepository);
    /**
     * 벡터 검색 실행
     */
    search(query: VectorSearchQuery): Promise<VectorSearchResult[]>;
    /**
     * 하이브리드 검색 실행
     */
    hybridSearch(query: VectorSearchQuery): Promise<VectorSearchResult[]>;
    providerHybridSearch(query: ProviderHybridQuery, embeddingService: UnifiedEmbeddingService): Promise<ProviderHybridResult[]>;
    unifiedSearch(query: ProviderHybridQuery, embeddingService: UnifiedEmbeddingService): Promise<UnifiedSearchResponse>;
    /**
     * 인덱스 상태 확인
     */
    getIndexStatus(): VectorIndexStatus;
    /**
     * 인덱스 재구성
     */
    rebuildIndex(): Promise<boolean>;
    /**
     * VEC 사용 가능 여부 확인
     */
    isAvailable(): boolean;
    /**
     * 성능 테스트 실행
     */
    runPerformanceTest(queryVector: number[], iterations?: number): Promise<PerformanceTestResult>;
    /**
     * 성능 테스트 결과 분석
     */
    analyzePerformance(result: PerformanceTestResult): {
        performance: 'excellent' | 'good' | 'fair' | 'poor';
        recommendations: string[];
    };
    /**
     * 성능 테스트 리포트 생성
     */
    generatePerformanceReport(result: PerformanceTestResult): string;
    /**
     * 인덱스 상태 요약
     */
    getStatusSummary(): string;
    /**
     * 전체 시스템 상태 확인
     */
    getSystemStatus(): {
        available: boolean;
        indexStatus: VectorIndexStatus;
        summary: string;
    };
}
//# sourceMappingURL=vector-search-facade.d.ts.map