import { EventEmitter } from 'events';
export interface SearchConfig {
    placeholder?: string;
    caseSensitive?: boolean;
    mode?: 'fuzzy' | 'exact' | 'contains';
    searchFields?: string[];
    maxHistory?: number;
    showSuggestions?: boolean;
    minChars?: number;
    debounceDelay?: number;
}
export interface SearchResult {
    item: any;
    score: number;
    matches: SearchMatch[];
    index: number;
}
export interface SearchMatch {
    field: string;
    value: string;
    highlighted: string;
    positions: number[];
    score: number;
}
export interface FilterCriteria {
    status?: string[];
    type?: string[];
    dateRange?: {
        start?: Date;
        end?: Date;
    };
    custom?: (item: any) => boolean;
}
export declare class SearchPanel {
    private screen;
    private eventBus;
    private config;
    private searchBox;
    private resultsBox;
    private statusBox;
    private isVisible;
    private searchHistory;
    private currentQuery;
    private currentResults;
    private selectedIndex;
    private searchTimeout;
    private dataSource;
    private filterCriteria;
    constructor(screen: any, eventBus: EventEmitter, config?: SearchConfig);
    show(): void;
    hide(): void;
    setDataSource(data: any[]): void;
    setFilterCriteria(criteria: FilterCriteria): void;
    getResults(): SearchResult[];
    getSelectedResult(): SearchResult | null;
    isSearchVisible(): boolean;
    clearSearch(): void;
    navigateUp(): void;
    navigateDown(): void;
    selectResult(): void;
    private createSearchInterface;
    private setupSearchEvents;
    private handleSearchInput;
    private performSearch;
    private applyFilters;
    private fuzzySearch;
    private exactSearch;
    private containsSearch;
    private calculateFuzzyMatch;
    private calculateExactMatch;
    private highlightMatches;
    private getFieldValue;
    private updateResultsDisplay;
    private updateStatusDisplay;
    private addToHistory;
    getSearchHistory(): string[];
    clearHistory(): void;
    destroy(): void;
}
//# sourceMappingURL=search-panel.d.ts.map