/**
 * 의미적 유사성을 기반으로 한 고성능 벡터 검색을 제공합니다.
 * sqlite-vec를 사용하여 대용량 벡터 데이터에서도 빠른 유사도 검색을 수행합니다.
 * Memento MCP Server의 핵심 벡터 검색 컴포넌트로서 의미 기반 검색 기능을 제공합니다.
 *
 * 리팩토링: VectorSearchContainer와 Facade 패턴을 사용하여 개선된 구조를 활용합니다.
 * 기존 인터페이스는 유지하여 하위 호환성을 보장합니다.
 */
import Database from 'better-sqlite3';
export interface VectorSearchResult {
    memory_id: string;
    similarity: number;
    content: string;
    type: string;
    importance: number;
    created_at: string;
    last_accessed?: string;
    pinned: boolean;
    tags?: string[];
}
export interface VectorSearchOptions {
    limit?: number;
    threshold?: number;
    types?: string[];
    includeContent?: boolean;
    includeMetadata?: boolean;
}
export interface VectorIndexStatus {
    available: boolean;
    tableExists: boolean;
    recordCount: number;
    dimensions: number;
    vecExtensionLoaded: boolean;
}
/**
 * 벡터 검색 엔진
 * 리팩토링된 구조를 사용하여 개선된 유지보수성과 테스트 가능성을 제공합니다.
 */
export declare class VectorSearchEngine {
    private container;
    constructor();
    /**
     * 데이터베이스 연결을 설정하고 벡터 검색 기능의 사용 가능 여부를 확인합니다.
     */
    initialize(db: Database.Database | null): void;
    /**
     * 쿼리 벡터와 유사한 메모리를 검색하여 의미적으로 관련된 결과를 제공합니다.
     */
    search(queryVector: number[], options?: VectorSearchOptions, provider?: string): Promise<VectorSearchResult[]>;
    /**
     * 벡터 검색과 메타데이터 검색을 결합하여 검색 정확도와 포괄성을 동시에 확보합니다.
     */
    hybridSearch(queryVector: number[], textQuery: string, options?: VectorSearchOptions, provider?: string): Promise<VectorSearchResult[]>;
    /**
     * 벡터 검색 기능의 현재 상태를 확인하여 사용 가능 여부와 인덱스 정보를 제공합니다.
     */
    getIndexStatus(): VectorIndexStatus;
    /**
     * 벡터 인덱스를 재구성하여 검색 성능을 최적화합니다.
     */
    rebuildIndex(): Promise<boolean>;
    /**
     * 벡터 검색의 성능을 측정하여 최적화 지점을 파악합니다.
     */
    performanceTest(queryVector: number[], iterations?: number): Promise<{
        averageTime: number;
        minTime: number;
        maxTime: number;
        results: number;
        successRate: number;
    }>;
    /**
     * 특정 provider의 벡터 차원을 조회하여 벡터 검색 시 차원 정보를 제공합니다.
     */
    getDimensions(provider?: string): number;
    /**
     * 각 임베딩 provider별로 다른 벡터 테이블을 사용하여 차원 불일치를 방지합니다.
     * provider에 따라 적절한 테이블명을 반환하여 정확한 검색을 보장합니다.
     * SQL Injection 방지를 위해 화이트리스트 기반 검증을 수행합니다.
     *
     * @internal 테스트를 위해 public으로 유지
     */
    getVectorTableName(provider: string): string;
    /**
     * 벡터 검색 기능이 사용 가능한지 확인하여 호출자가 적절한 처리를 할 수 있도록 합니다.
     */
    isAvailable(): boolean;
    /**
     * 데이터베이스 연결 상태를 확인하여 검색 실행 전 안전성을 보장합니다.
     */
    isConnected(): boolean;
}
export declare function getVectorSearchEngine(): VectorSearchEngine;
export declare function createVectorSearchEngine(): VectorSearchEngine;
export declare function resetVectorSearchEngine(): void;
//# sourceMappingURL=vector-search-engine.d.ts.map