import Database from 'better-sqlite3';
import { Entity } from '../../core.js';
import { SearchConfig, PaginationOptions, PaginationResult } from '../types.js';
import { BaseSearchStrategy } from './base-strategy.js';
/**
 * SQLite search strategy - uses client-side fuzzy search only
 * SQLite doesn't have built-in fuzzy search capabilities like PostgreSQL,
 * so we always use Fuse.js for fuzzy searching
 */
export declare class SQLiteFuzzyStrategy extends BaseSearchStrategy {
    private db;
    private project;
    private searchLimits;
    constructor(config: SearchConfig, db: Database.Database, project: string);
    canUseDatabase(): boolean;
    searchDatabase(query: string | string[], threshold: number, project?: string): Promise<Entity[]>;
    searchClientSide(entities: Entity[], query: string | string[]): Entity[];
    private searchSingleClientSide;
    /**
     * Get all entities for a project from SQLite database
     * This is used to load entities for client-side search
     * Respects maxClientSideEntities limit to prevent memory issues
     */
    getAllEntities(project?: string): Promise<Entity[]>;
    /**
     * Perform exact search at database level for better performance
     * This can be used as an optimization for exact searches
     */
    searchExact(query: string | string[], project?: string): Promise<Entity[]>;
    /**
     * Optimized multiple exact search using single SQL query with OR conditions
     * This provides better performance than sequential searches
     */
    private searchExactMultiple;
    /**
     * Single exact search implementation
     */
    private searchExactSingle;
    /**
     * Get all entities with pagination support
     */
    getAllEntitiesPaginated(pagination: PaginationOptions, project?: string): Promise<PaginationResult<Entity>>;
    /**
     * Perform exact search with pagination support
     */
    searchExactPaginated(query: string | string[], pagination: PaginationOptions, project?: string): Promise<PaginationResult<Entity>>;
    /**
     * Single exact search with pagination
     */
    private searchExactSinglePaginated;
    /**
     * Multiple exact search with pagination
     */
    private searchExactMultiplePaginated;
    /**
     * Safely parse JSON with fallback to default value
     */
    private safeJsonParse;
}
//# sourceMappingURL=sqlite-strategy.d.ts.map