import { type ChangeEvent, type ChangeEventHandler, type CSSProperties, type FormEvent, type FormHTMLAttributes, type InputHTMLAttributes, type MouseEvent, type ReactNode, type Ref } from 'react'; type MorphingInputOptionId = string | number; type MorphingInputOption = { id: MorphingInputOptionId; label: string; placeholder: string; icon?: ReactNode; submitLabel?: string; }; type MorphingInputProps = { options?: readonly MorphingInputOption[]; value?: string; defaultValue?: string; activeOptionId?: MorphingInputOptionId; defaultActiveOptionId?: MorphingInputOptionId; inputId?: string; inputName?: string; inputLabel?: string; modeButtonLabel?: string; submitLabel?: string; disabled?: boolean; className?: string; modeButtonClassName?: string; inputClassName?: string; submitButtonClassName?: string; placeholderClassName?: string; style?: CSSProperties; ref?: Ref; inputRef?: Ref; inputProps?: Omit, 'children' | 'className' | 'defaultValue' | 'id' | 'name' | 'onChange' | 'placeholder' | 'value'>; onChange?: ChangeEventHandler; onValueChange?: (value: string, event: ChangeEvent) => void; onOptionChange?: (option: MorphingInputOption, event: MouseEvent) => void; onSubmit?: (value: string, option: MorphingInputOption, event: FormEvent) => void; } & Omit, 'children' | 'className' | 'onChange' | 'onSubmit' | 'style'>; declare const MorphingInput: ({ options, value, defaultValue, activeOptionId, defaultActiveOptionId, inputId, inputName, inputLabel, modeButtonLabel, submitLabel, disabled, className, modeButtonClassName, inputClassName, submitButtonClassName, placeholderClassName, style, ref, inputRef, inputProps, onChange, onValueChange, onOptionChange, onSubmit, ...formProps }: MorphingInputProps) => import("react/jsx-runtime").JSX.Element; export { MorphingInput }; export type { MorphingInputOption, MorphingInputOptionId, MorphingInputProps };