import type { InputHTMLAttributes } from "react";
import type { UseSearchOptions } from "@agg-build/hooks";
import type { VenueLogoName } from "../venue-logo";
export type SearchResultItem = {
    id: string;
    title: string;
    thumbnailSrc: string;
    thumbnailAlt?: string;
    venue: VenueLogoName;
    visibleVenues: VenueLogoName[];
    marketSummaryLabel: string;
    volumeLabel: string;
    valueLabel: string;
    contextLabel: string;
};
export type SearchClassNames = {
    root?: string;
    inputContainer?: string;
    input?: string;
    searchIcon?: string;
    dropdown?: string;
    resultsList?: string;
    resultItem?: string;
    resultButton?: string;
    resultThumbnail?: string;
    resultTitle?: string;
    resultMeta?: string;
    resultValue?: string;
    resultContext?: string;
    resultChevron?: string;
    emptyState?: string;
    emptyStateContent?: string;
    emptyStateIcon?: string;
    emptyStateTitle?: string;
    emptyStateDescription?: string;
};
export type SearchInputProps = Pick<InputHTMLAttributes<HTMLInputElement>, "id" | "name" | "autoComplete" | "autoFocus" | "disabled" | "readOnly" | "required" | "maxLength" | "inputMode" | "onBlur" | "onFocus" | "onKeyDown" | "onKeyUp" | "onKeyPress" | "tabIndex" | "enterKeyHint" | "aria-describedby">;
export type SearchProps = {
    /** Maximum number of search results to request per query. */
    limit?: UseSearchOptions["limit"];
    /** Category filters forwarded to the search query. */
    categoryIds?: UseSearchOptions["categoryIds"];
    /** Class name overrides for internal search slots. */
    classNames?: SearchClassNames;
    /** Native input props forwarded to the search field. */
    inputProps?: SearchInputProps;
    /**
     * Override handler for when a search result row is clicked.
     * When provided, prevents the default `searchConfig.onSelect` behavior.
     */
    onSelectEvent?: (eventId: string) => void;
    /**
     * Override handler for when the "See all results" button is clicked.
     * When provided, prevents the default `searchConfig.openResults` behavior.
     */
    onSeeAllEvents?: (searchPhrase: string) => void;
};
