import { type TextInput as RNTextInput } from "react-native"; import { type FieldWidthProps, type StyleProp, type ViewStyle } from "../../style/index.js"; import { type AutocompleteSkin } from "./autocomplete.styles.js"; export interface AutocompleteProps extends FieldWidthProps { /** * The text typed into the field (controlled). Filters the option list. Omit * and use `defaultQuery` for uncontrolled use: a bare Autocomplete is typeable * out of the box. */ query?: string; /** Initial query for uncontrolled use. */ defaultQuery?: string; /** * Fired with the new query on each keystroke, and with "" when a select * resets the filter (both modes). */ onQueryChange?: (query: string) => void; /** The full list of selectable option labels. */ options?: string[]; /** The currently selected option label (CONTROLLED), marked with a check in the list. Omit for uncontrolled use. */ value?: string; /** Initial selected option for uncontrolled use (selecting a row updates it). */ defaultValue?: string; /** Prompt shown in the field when there is no query or value. */ placeholder?: string; /** * Whether the option list is open (CONTROLLED). Uncontrolled and closed by * default; focusing or typing in the field opens it, the chevron toggles it. * Pass `open` to pin it open, or `defaultOpen` to render it open initially * while staying interactive. A disabled control stays closed regardless. */ open?: boolean; /** Render the list open initially for uncontrolled use (selecting or the chevron closes it). */ defaultOpen?: boolean; /** Fired when the open state changes (focus, typing, chevron, select). */ onOpenChange?: (open: boolean) => void; /** * The field's persistent label. Its placement is platform-adaptive: iOS and web * render it ABOVE the field; Android renders the Material 3 in-container FLOATING * label (centered like a placeholder at rest, floating to the top once the list * opens or a value fills the field). The label names the field for assistive tech. */ label?: string; /** * Marks the field as required: appends a destructive "*" to the label (hidden * from the accessible name) and sets aria-required on the field. Takes effect * only alongside `label`. */ required?: boolean; /** Optional muted helper line rendered below the option list. */ helperText?: string; /** Dims the control and blocks interaction. */ disabled?: boolean; /** Called with the chosen option label when a row is pressed. */ onSelect?: (option: string) => void; /** E2E hook forwarded to the text field. */ testID?: string; small?: boolean; large?: boolean; /** Outer flex composition within a parent only, never a restyle hook; width comes from the width axis (block/narrow/wide). */ style?: StyleProp; } /** Build an Autocomplete component from a platform skin. */ export declare function createAutocomplete(skin: AutocompleteSkin): import("react").ForwardRefExoticComponent>; //# sourceMappingURL=autocomplete.shared.d.ts.map