import * as React from 'react'; import type { GeneratedId } from '../../../dom/id_generator/id_generator'; export type BaseInputSize = 'medium' | 'large'; export type BaseInputProps = { ref?: React.Ref type: string id?: GeneratedId | string value?: string defaultValue?: string placeholder?: string name?: string pattern?: string inputMode?: React.HTMLAttributes['inputMode'] autoCapitalize?: 'none' | 'sentences' | 'words' | 'characters' autoCorrect?: 'on' | 'off' enterKeyHint?: 'enter' | 'done' | 'go' | 'next' | 'previous' | 'search' | 'send' className?: string inputClassName?: string iconClassName?: string icon?: InputIcon error?: boolean borderless?: boolean textAlignCenter?: boolean size?: BaseInputSize autoComplete?: string autoFocus?: AutoFocusOption required?: boolean readOnly?: boolean disabled?: boolean disableSpellcheck?: boolean maxLength?: number min?: number | string max?: number | string step?: number | 'any' blurOnEnterKeyDown?: boolean } & BaseInputA11yProps & BaseInputDecoratorProps & BaseInputEventHandlerProps; type BaseInputDecoratorProps = { start?: InputDecoration end?: InputDecoration }; type BaseInputA11yProps = { role?: 'combobox' | 'searchbox' | 'spinbutton' ariaRoleDescription?: string ariaLabel?: string ariaLabelledBy?: string ariaDescribedBy?: string ariaControls?: string ariaAutoComplete?: 'inline' | 'list' | 'both' | 'none' ariaActiveDescendant?: string ariaExpanded?: boolean ariaHasPopup?: 'menu' | 'listbox' | 'tree' | 'grid' | 'dialog' ariaValueNow?: number ariaValueText?: string ariaValueMin?: number ariaValueMax?: number }; export type BaseInputChangeHandler = ( value: string, e?: React.ChangeEvent) => void; export type BaseInputChangeCompleteHandler = ( value: string) => void; type BaseInputEventHandlerProps = { onChange?: BaseInputChangeHandler onChangeComplete?: BaseInputChangeCompleteHandler onBlur?: React.FocusEventHandler onFocus?: React.FocusEventHandler onPaste?: React.ClipboardEventHandler onClick?: React.MouseEventHandler onMouseDown?: React.MouseEventHandler onMouseUp?: React.MouseEventHandler onContextMenu?: React.MouseEventHandler onKeyDown?: React.KeyboardEventHandler onKeyUp?: React.KeyboardEventHandler }; export type AutoFocusOption = 'on-desktop' | 'always' | 'never'; export type InputIcon = { type: IconType; align: 'start' | 'end'; }; type IconType = 'search' | 'credit-card' | 'credit-card-expiry' | 'credit-card-verification' | 'link' | 'location' | 'email' | 'person'; export type InputDecoration = (() => React.ReactNode) | React.ReactNode; export declare function useFocusState(): { isFocused: boolean; isKeyboardMode: boolean; setFocused: (value: boolean) => boolean; }; export declare function useOnWrapperClick(): { ref: React.RefObject; onClick: (e: React.MouseEvent) => void; }; export declare const BaseInput: React.ComponentType; export {};