import { AIConfig } from './config';
export interface SearchResult {
    id: string;
    content: string;
    metadata: Record<string, any>;
    score: number;
    highlights?: string[];
}
export interface IndexableDocument {
    id: string;
    content: string;
    title?: string;
    metadata?: Record<string, any>;
    tags?: string[];
}
export declare class SemanticSearchService {
    private config;
    private pinecone;
    private openai;
    private cache;
    private errorHandler;
    private index;
    constructor(config: AIConfig);
    initialize(): Promise<void>;
    private createIndex;
    private waitForIndexReady;
    indexDocuments(documents: IndexableDocument[]): Promise<void>;
    search(query: string, options?: {
        topK?: number;
        filter?: Record<string, any>;
        includeMetadata?: boolean;
        namespace?: string;
    }): Promise<SearchResult[]>;
    hybridSearch(query: string, options?: {
        semanticWeight?: number;
        keywordWeight?: number;
        topK?: number;
        filter?: Record<string, any>;
    }): Promise<SearchResult[]>;
    private keywordSearch;
    private calculateKeywordScore;
    private generateEmbedding;
    private generateHighlights;
    private fallbackSearch;
    private chunkArray;
    deleteDocument(id: string): Promise<void>;
    deleteAllDocuments(namespace?: string): Promise<void>;
}
//# sourceMappingURL=semantic-search-service.d.ts.map