import { type ChangeEvent, type ChangeEventHandler, type CSSProperties, type FormEvent, type FormHTMLAttributes, type InputHTMLAttributes, type ReactNode, type Ref } from 'react'; type WavyLoginFormStatus = 'idle' | 'loading' | 'success' | 'error'; type WavyPasswordVisualState = Exclude; type WavyLoginValues = { email: string; password: string; }; type WavyLoginSubmitResult = { status: Exclude; values: WavyLoginValues; }; type WavyTextInputProps = { label?: ReactNode; value?: string; defaultValue?: string; className?: string; inputClassName?: string; labelClassName?: string; style?: CSSProperties; ref?: Ref; onChange?: ChangeEventHandler; onValueChange?: (value: string, event: ChangeEvent) => void; } & Omit, 'children' | 'className' | 'defaultValue' | 'onChange' | 'placeholder' | 'style' | 'value'>; type WavyPasswordInputProps = { label?: ReactNode; value?: string; defaultValue?: string; state?: WavyPasswordVisualState; className?: string; inputClassName?: string; labelClassName?: string; style?: CSSProperties; ref?: Ref; onChange?: ChangeEventHandler; onValueChange?: (value: string, event: ChangeEvent) => void; } & Omit, 'children' | 'className' | 'defaultValue' | 'onChange' | 'placeholder' | 'style' | 'type' | 'value'>; type WavyLoginFormProps = { title?: ReactNode; emailLabel?: ReactNode; passwordLabel?: ReactNode; submitLabel?: ReactNode; defaultEmail?: string; defaultPassword?: string; correctPassword?: string; submitDelay?: number; resultVisibleMs?: number; resetOnError?: boolean; className?: string; emailInputProps?: Omit; passwordInputProps?: Omit; onSubmitStart?: (values: WavyLoginValues, event: FormEvent) => void; onSubmitResult?: (result: WavyLoginSubmitResult) => void; } & Omit, 'children' | 'className' | 'onSubmit'>; declare const WavyTextInput: ({ label, value, defaultValue, className, inputClassName, labelClassName, style, ref, id: externalId, type, onChange, onValueChange, "aria-label": ariaLabel, ...inputProps }: WavyTextInputProps) => import("react/jsx-runtime").JSX.Element; declare const WavyPasswordInput: ({ label, value, defaultValue, state, className, inputClassName, labelClassName, style, ref, id: externalId, name, maxLength, readOnly, autoCapitalize, autoComplete, autoCorrect, spellCheck, onChange, onKeyDown, onSelect, onValueChange, "aria-label": ariaLabel, ...inputProps }: WavyPasswordInputProps) => import("react/jsx-runtime").JSX.Element; declare const WavyLoginForm: ({ title, emailLabel, passwordLabel, submitLabel, defaultEmail, defaultPassword, correctPassword, submitDelay, resultVisibleMs, resetOnError, className, emailInputProps, passwordInputProps, onSubmitStart, onSubmitResult, "aria-label": ariaLabel, ...formProps }: WavyLoginFormProps) => import("react/jsx-runtime").JSX.Element; export { WavyLoginForm, WavyPasswordInput, WavyTextInput }; export type { WavyLoginFormProps, WavyLoginFormStatus, WavyLoginSubmitResult, WavyLoginValues, WavyPasswordInputProps, WavyPasswordVisualState, WavyTextInputProps, };