/**
 * Search Index
 *
 * Maintains an inverted index for fast full-text search.
 *
 * @since v1.68.0
 */
import type { IndexableDocument, SearchIndexStats, SearchResultType } from './search-types.js';
/**
 * Search index for fast full-text search
 */
export declare class SearchIndex {
    /** Documents stored by ID */
    private documents;
    /** Inverted index: term -> documents containing term */
    private invertedIndex;
    /** Document count by type */
    private typeCounts;
    /** Last update timestamp */
    private lastUpdated;
    /**
     * Add a document to the index
     */
    addDocument(doc: IndexableDocument): void;
    /**
     * Index tokens for a document
     */
    private indexTokens;
    /**
     * Remove a document from the index
     */
    removeDocument(id: string): boolean;
    /**
     * Get a document by ID
     */
    getDocument(id: string): IndexableDocument | undefined;
    /**
     * Check if a document exists
     */
    hasDocument(id: string): boolean;
    /**
     * Search for documents matching terms
     */
    search(terms: string[], options?: {
        types?: SearchResultType[];
        limit?: number;
    }): Array<{
        docId: string;
        score: number;
        doc: IndexableDocument;
    }>;
    /**
     * Get suggestions for a prefix
     */
    suggest(prefix: string, limit?: number): string[];
    /**
     * Get all documents of a type
     */
    getDocumentsByType(type: SearchResultType): IndexableDocument[];
    /**
     * Get index statistics
     */
    getStats(): SearchIndexStats;
    /**
     * Clear the entire index
     */
    clear(): void;
    /**
     * Rebuild index from stored documents
     */
    rebuild(): void;
}
/**
 * Create a new search index
 */
export declare function createSearchIndex(): SearchIndex;
//# sourceMappingURL=search-index.d.ts.map