import { CSSProperties, ReactElement } from 'react'; import { VariantType } from '../../types/search'; import { ExactSearchResult } from './ExactSearch'; import { MiniSearchResult } from './MiniSearch'; import { StandardSearchResult } from './StandardSearch'; import { SearchResultItemComponent } from './shared/renderSearchResultItem'; export interface SearchProps { /** Search variant. Defaults to STANDARD. */ variant?: VariantType; /** Debounce delay in milliseconds (passed to Mini/Standard/Embedded). */ debounceTime?: number; /** Auto-focus the input on mount. */ autoFocus?: boolean; /** * When true, GROUP search results are filtered to only show groups the * current user has joined. Passed to Mini/Standard. */ enableLocalSearch?: boolean; /** * Custom result-row renderer. Receives `{ keyword, data, type }` the same * way the legacy Search `SearchResultItem` slot did. */ SearchResultItem?: SearchResultItemComponent | undefined; className?: string; style?: CSSProperties; /** Called on every keyword change. */ onKeywordChange?: (keyword: string) => void; /** Called when a result row is clicked. */ onResultItemClick?: (result: ExactSearchResult | MiniSearchResult | StandardSearchResult) => void; } /** * Unified Search entry — dispatches to ExactSearch / EmbeddedSearch / * MiniSearch / StandardSearch based on the `variant` prop. * * This mirrors the Vue3 `Search.vue` router component so that demo/consumer * code can keep using `` without touching each * sub-component directly. */ export declare function Search({ variant, debounceTime, autoFocus, enableLocalSearch, SearchResultItem, className, style, onKeywordChange, onResultItemClick, }: SearchProps): ReactElement | null;