/**
 * @file PanelSearchInput.tsx
 * @input Uses React, StyleX, Icon, InputClearButton, theme tokens
 * @output Exports PanelSearchInput — the search row that sits at the top of a
 *   dropdown panel
 * @position Shared internal primitive; used by Selector and MultiSelector
 *
 * A dropdown panel is already a bordered, elevated surface. Nesting a bordered
 * TextInput inside it draws a second box within that box, so the field reads as
 * a control dropped into the menu rather than part of it. This row is the
 * seamless alternative — magnifier, borderless input, clear button — separated
 * from the options by a divider the panel owns.
 *
 * The field is shaped like the option rows under it rather than like a form
 * input: same inset from the panel edge, same `--radius-element` corners, same
 * height. The focus ring is drawn on that rounded box, so focus reads as "this
 * row of the panel" — the same visual language as an item's highlight — instead
 * of ringing the whole panel header. It appears for keyboard focus only; see
 * `fieldKeyboardFocus` for why `:focus-visible` alone does not mean that.
 *
 *   ┌─ panel ──────────────────┐
 *   │ ┌──────────────────────┐ │  ← field: rounded, inset, item-sized
 *   │ │ ⌕  Search…         ✕ │ │
 *   │ └──────────────────────┘ │
 *   ├──────────────────────────┤  ← divider (full-bleed)
 *   │ ┌──────────────────────┐ │
 *   │ │ Apple                │ │  ← option row: same box
 *
 * The clear button is the shared `InputClearButton`, so the affordance and its
 * ghost-button behavior match every other input's clear. It renders AFTER the
 * input in DOM order: the selector components' Tab handling depends on that
 * order to keep the popup open while focus moves onto it.
 *
 * Not exported from the package: it is an implementation detail of the panels
 * that use it, not public API.
 */
import { type Ref } from 'react';
import type { BaseProps } from '../BaseProps';
export interface PanelSearchInputProps extends Omit<BaseProps<HTMLInputElement>, 'onChange'> {
    /** Ref forwarded to the input element (for focus management). */
    ref?: Ref<HTMLInputElement>;
    /**
     * Accessible name for the input. Rendered as `aria-label`: the panel has no
     * visible label for the field, and a placeholder is not a reliable name.
     */
    label: string;
    /** Accessible name for the clear (✕) button, e.g. `Clear Search options`. */
    clearLabel: string;
    /** Placeholder text shown while the query is empty. */
    placeholder?: string;
    /** The current query. */
    value: string;
    /** Called with the next query on every keystroke and on clear. */
    onValueChange: (value: string) => void;
    /** Key handler for the input itself. */
    onKeyDown?: React.KeyboardEventHandler<HTMLInputElement>;
    /** Focus handler for the input; runs after the ring's own bookkeeping. */
    onFocus?: React.FocusEventHandler<HTMLInputElement>;
    /** Blur handler for the input; runs after the ring's own bookkeeping. */
    onBlur?: React.FocusEventHandler<HTMLInputElement>;
    /**
     * Key handler for the row. Events from the input are handled by `onKeyDown`;
     * this one exists for keys pressed on the clear button, which has no other
     * handler of its own.
     */
    onContainerKeyDown?: React.KeyboardEventHandler<HTMLDivElement>;
}
/**
 * Search row for the top of a dropdown panel: magnifier, borderless input, and
 * a clear button once a query is typed, in a rounded box shaped like the
 * option rows beneath it.
 *
 * `className`/`style`/`xstyle` apply to the outer row (use them to match the
 * option list's inline padding); every other prop (`role`, `aria-*`, `id`, …)
 * passes through to the `<input>`, so the caller owns the combobox wiring.
 */
export declare function PanelSearchInput({ ref, label, clearLabel, placeholder, value, onValueChange, onKeyDown, onFocus, onBlur, onContainerKeyDown, xstyle, className, style, ...props }: PanelSearchInputProps): import("react").JSX.Element;
export declare namespace PanelSearchInput {
    var displayName: string;
}
//# sourceMappingURL=PanelSearchInput.d.ts.map