import { Entity } from '../core.js';
import { SearchStrategy, SearchConfig, SearchOptions, PaginationOptions, PaginationResult } from './types.js';
/**
 * Main search orchestrator that manages different search strategies
 */
export declare class SearchManager {
    private config;
    private strategy;
    constructor(config: SearchConfig, strategy: SearchStrategy);
    search(query: string | string[], entities: Entity[], options?: SearchOptions, project?: string): Promise<Entity[]>;
    searchMultiple(queries: string[], entities: Entity[], options?: SearchOptions, project?: string): Promise<Entity[]>;
    private searchSingle;
    private exactSearch;
    /**
     * Paginated search with database-level pagination when possible
     */
    searchPaginated(query: string | string[], pagination: PaginationOptions, options?: SearchOptions, project?: string): Promise<PaginationResult<Entity>>;
    private searchSinglePaginated;
    private searchMultiplePaginated;
    /**
     * Client-side search with post-search pagination
     */
    private clientSideSearchPaginated;
    /**
     * Exact tags search with pagination support
     */
    private exactTagsSearchPaginated;
    /**
     * Exact search with database-level pagination fallback
     */
    private exactSearchPaginated;
    /**
     * Apply pagination to search results (post-search pagination)
     */
    private applyPostSearchPagination;
}
//# sourceMappingURL=search-manager.d.ts.map