/**
 * SearchInput — purely controlled search input with zero provider dependencies.
 *
 * No SearchProvider, no SuggestionsProvider, no useSearchState, no useQuerySuggestions.
 * Just a styled input + optional clear button + optional submit button.
 *
 * ## Usage
 *
 * ```tsx
 * // Fully standalone — no Seekora context required
 * const [q, setQ] = React.useState('');
 * <SearchInput
 *   value={q}
 *   onChange={setQ}
 *   onSubmit={(query) => window.location.href = '/search?q=' + encodeURIComponent(query)}
 * />
 * ```
 *
 * ## Navigate shorthand
 *
 * If `onSubmit` is not provided but `searchResultsUrl` is, Enter navigates to
 * `searchResultsUrl + encodeURIComponent(query)`.
 *
 * ```tsx
 * <SearchInput
 *   value={q}
 *   onChange={setQ}
 *   searchResultsUrl="/find?query="
 * />
 * ```
 *
 * To compose with Seekora analytics or suggestions, wrap it yourself — this
 * component intentionally stays dependency-free.
 */
import React from "react";
export interface SearchInputProps {
    /** REQUIRED — fully controlled value */
    value: string;
    /** REQUIRED — called on every keystroke / clear with the new string */
    onChange: (next: string) => void;
    /** Called when the user presses Enter or clicks the submit button */
    onSubmit?: (query: string) => void;
    /** Placeholder text (default: "Search") */
    placeholder?: string;
    /** Show the clear (×) button when value is non-empty (default: true) */
    showClearButton?: boolean;
    /** Show a submit button to the right of the input (default: false) */
    showSubmitButton?: boolean;
    /** Label for the submit button (default: "Search") */
    submitButtonLabel?: string;
    /** Root className override */
    className?: string;
    /**
     * Pass-through for any native input attribute: aria-*, data-*, name, id, etc.
     * `value`, `onChange`, `onKeyDown` are managed internally and will be ignored
     * if provided here.
     */
    inputProps?: Omit<React.InputHTMLAttributes<HTMLInputElement>, "value" | "onChange" | "onKeyDown">;
    /**
     * URL prefix for navigate-on-submit behaviour.
     * Used only when `onSubmit` is not provided.
     * The encoded query is appended verbatim: `searchResultsUrl + encodeURIComponent(query)`.
     * Example: "/find?query="
     */
    searchResultsUrl?: string;
}
/**
 * Pure controlled search input. No Seekora context required.
 * Supports forwardRef so the parent can imperatively focus/blur the input.
 */
export declare const SearchInput: React.ForwardRefExoticComponent<SearchInputProps & React.RefAttributes<HTMLInputElement>>;
//# sourceMappingURL=SearchInput.d.ts.map