/**
 * SearchBar Component
 *
 * Interactive search input component with query suggestions support
 */
import React from 'react';
import type { SearchOptions } from '@seekora-ai/search-sdk';
export type SearchBarSize = 'small' | 'medium' | 'large';
export interface SearchBarTheme {
    container?: string;
    input?: string;
    inputFocused?: string;
    suggestionsContainer?: string;
    suggestionItem?: string;
    suggestionItemHover?: string;
    suggestionItemActive?: string;
    searchIcon?: string;
    clearButton?: string;
    submitButton?: string;
}
export interface SearchBarProps {
    placeholder?: string;
    showSuggestions?: boolean;
    debounceMs?: number;
    minQueryLength?: number;
    maxSuggestions?: number;
    onSearch?: (query: string, results: any) => void;
    onQueryChange?: (query: string) => void;
    onSuggestionSelect?: (suggestion: string) => void;
    onSearchStateChange?: (state: {
        results: any;
        loading: boolean;
        error: Error | null;
    }) => void;
    searchOptions?: Omit<SearchOptions, 'q'>;
    className?: string;
    style?: React.CSSProperties;
    theme?: SearchBarTheme;
    renderSuggestion?: (suggestion: string, index: number) => React.ReactNode;
    /** Custom render for the search icon. If not provided, a default magnifying glass SVG is rendered. */
    renderSearchIcon?: () => React.ReactNode;
    /** Whether to show a clear button when the query is non-empty (default: true) */
    showClearButton?: boolean;
    /** Custom render for the clear icon */
    renderClearIcon?: () => React.ReactNode;
    /** Whether to show a submit button to the right of the input (default: false) */
    showSubmitButton?: boolean;
    /** Custom render for the submit button */
    renderSubmitButton?: () => React.ReactNode;
    /** Size variant controlling padding and font size (default: 'medium') */
    size?: SearchBarSize;
    /** Trigger search automatically as user types, with debounce (default: false).
     *  When true, uses `debounceMs` for the delay. Enter still triggers immediately. */
    searchAsYouType?: boolean;
}
export declare const SearchBar: React.FC<SearchBarProps>;
//# sourceMappingURL=SearchBar.d.ts.map