import { AriaButtonProps } from '../button/useButton'; import { AriaTextFieldProps } from '../textfield/useTextField'; import { DOMAttributes, RefObject, ValidationResult } from '@react-types/shared'; import { InputHTMLAttributes, LabelHTMLAttributes } from 'react'; import { SearchFieldProps, SearchFieldState } from 'react-stately/useSearchFieldState'; export interface AriaSearchFieldProps extends SearchFieldProps, Omit { /** * An enumerated attribute that defines what action label or icon to preset for the enter key on virtual keyboards. See [MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/enterkeyhint). */ enterKeyHint?: 'enter' | 'done' | 'go' | 'next' | 'previous' | 'search' | 'send'; /** * The type of input to render. See [MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#htmlattrdeftype). * @default 'search' */ type?: 'text' | 'search' | 'url' | 'tel' | 'email' | 'password' | (string & {}); } export interface SearchFieldAria extends ValidationResult { /** Props for the text field's visible label element (if any). */ labelProps: LabelHTMLAttributes; /** Props for the input element. */ inputProps: InputHTMLAttributes; /** Props for the clear button. */ clearButtonProps: AriaButtonProps; /** Props for the searchfield's description element, if any. */ descriptionProps: DOMAttributes; /** Props for the searchfield's error message element, if any. */ errorMessageProps: DOMAttributes; } /** * Provides the behavior and accessibility implementation for a search field. * @param props - Props for the search field. * @param state - State for the search field, as returned by `useSearchFieldState`. * @param inputRef - A ref to the input element. */ export declare function useSearchField(props: AriaSearchFieldProps, state: SearchFieldState, inputRef: RefObject): SearchFieldAria;