/**
 * SuggestionSearchBar - Unified Search Component with Premium Dropdowns
 *
 * A self-contained search component that:
 * - Fetches suggestions from the API automatically
 * - Parses responses internally (no user-side parsing needed)
 * - Renders any of the 7 premium dropdown variants
 * - Handles analytics tracking
 * - Supports recent searches via localStorage
 * - Fully responsive and mobile-ready
 *
 * Usage:
 * ```tsx
 * <SuggestionSearchBar
 *   client={seekoraClient}
 *   variant="amazon"
 *   onSearch={(query) => router.push(`/search?q=${query}`)}
 * />
 * ```
 */
import React from 'react';
import type { SeekoraClient } from '@seekora-ai/search-sdk';
import type { SuggestionDropdownVariant, SuggestionFieldMapping, ProductFieldMapping, DropdownThemeConfig, AnalyticsConfig } from './types';
export interface SuggestionSearchBarProps {
    /** Seekora client instance - REQUIRED */
    client: SeekoraClient;
    /** Dropdown variant to use */
    variant?: SuggestionDropdownVariant;
    /** Auto-select mobile variant on small screens */
    autoMobileVariant?: boolean;
    /** Placeholder text */
    placeholder?: string;
    /** Initial/default query */
    defaultQuery?: string;
    /** Controlled query value */
    value?: string;
    /** Min characters before fetching */
    minQueryLength?: number;
    /** Max suggestions to fetch */
    maxSuggestions?: number;
    /** Debounce delay in ms */
    debounceMs?: number;
    /** Include dropdown recommendations (products, tabs, trending) */
    includeDropdownRecommendations?: boolean;
    /** When false, omit product hits list from dropdown (default true) */
    includeDropdownProductList?: boolean;
    /** When false, omit filtered_tabs from dropdown (default true) */
    includeFilteredTabs?: boolean;
    /** Include categories per suggestion */
    includeCategories?: boolean;
    /** Filtered tabs configuration */
    filteredTabs?: Array<{
        id?: string;
        label: string;
        filter: string;
    }>;
    /** Analytics tags */
    analyticsTags?: string[];
    /** Enable recent searches */
    enableRecentSearches?: boolean;
    /** Max recent searches to store */
    maxRecentSearches?: number;
    /** Show products in dropdown */
    showProducts?: boolean;
    /** Show trending when empty */
    showTrendingOnEmpty?: boolean;
    /** Enable analytics tracking */
    enableAnalytics?: boolean;
    /** Analytics configuration */
    analyticsConfig?: AnalyticsConfig;
    /** Map suggestion fields to your data */
    suggestionFields?: SuggestionFieldMapping;
    /** Map product fields to your data */
    productFields?: ProductFieldMapping;
    /** Theme configuration */
    theme?: DropdownThemeConfig;
    /** Called when search is submitted */
    onSearch?: (query: string) => void;
    /** Called when query changes */
    onQueryChange?: (query: string) => void;
    /** Called when a suggestion is selected */
    onSuggestionSelect?: (suggestion: any, index: number) => void;
    /** Called when a product is clicked */
    onProductClick?: (product: any, index: number) => void;
    /** Called when a category/tab is clicked */
    onCategoryClick?: (category: any, index: number) => void;
    /** Called when a tab is changed */
    onTabChange?: (tabId: string) => void;
    /** Container class name */
    className?: string;
    /** Container style */
    style?: React.CSSProperties;
    /** Input class name */
    inputClassName?: string;
    /** Dropdown width */
    dropdownWidth?: string | number;
    /** Dropdown max height */
    dropdownMaxHeight?: string | number;
    /** Z-index for dropdown */
    zIndex?: number;
    /** Enable caching for suggestions (reduces API calls) */
    enableCache?: boolean;
    /** Cache TTL in milliseconds (default: 30000 = 30 seconds) */
    cacheTtlMs?: number;
    /** Maximum cache entries (default: 100) */
    cacheMaxSize?: number;
}
export interface SuggestionSearchBarRef {
    focus: () => void;
    blur: () => void;
    clear: () => void;
    getQuery: () => string;
    setQuery: (query: string) => void;
    openDropdown: () => void;
    closeDropdown: () => void;
    refresh: () => void;
    /** Clear the suggestions cache */
    clearCache: () => void;
    /** Get cache statistics */
    getCacheStats: () => {
        size: number;
        maxSize: number;
    } | null;
}
export declare const SuggestionSearchBar: React.ForwardRefExoticComponent<SuggestionSearchBarProps & React.RefAttributes<SuggestionSearchBarRef>>;
export default SuggestionSearchBar;
//# sourceMappingURL=SuggestionSearchBar.d.ts.map