import React, { ReactNode } from 'react';
import { NativeProps } from '../../utils/native-props';
type NativeInputProps = React.DetailedHTMLProps<React.InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>;
type AriaProps = {
    role?: string;
};
export type InputProps = Pick<NativeInputProps, 'maxLength' | 'minLength' | 'autoComplete' | 'autoFocus' | 'pattern' | 'inputMode' | 'type' | 'name' | 'onFocus' | 'onBlur' | 'onPaste' | 'autoCapitalize' | 'autoCorrect' | 'onKeyDown' | 'onKeyUp' | 'onCompositionStart' | 'onCompositionEnd' | 'onClick' | 'step' | 'id' | 'placeholder' | 'readOnly' | 'disabled' | 'enterKeyHint'> & {
    value?: string;
    defaultValue?: string;
    onChange?: (val: string) => void;
    clearable?: boolean;
    clearIcon?: ReactNode;
    onlyShowClearWhenFocus?: boolean;
    onClear?: () => void;
    onEnterPress?: (e: React.KeyboardEvent<HTMLInputElement>) => void;
    min?: number;
    max?: number;
} & NativeProps<'--font-size' | '--color' | '--placeholder-color' | '--text-align'> & AriaProps;
export type InputRef = {
    clear: () => void;
    focus: () => void;
    blur: () => void;
    nativeElement: HTMLInputElement | null;
};
export declare const Input: React.ForwardRefExoticComponent<Pick<NativeInputProps, "pattern" | "id" | "onClick" | "disabled" | "name" | "type" | "onPaste" | "onCompositionEnd" | "onCompositionStart" | "onFocus" | "onBlur" | "onKeyDown" | "onKeyUp" | "autoCapitalize" | "autoFocus" | "enterKeyHint" | "autoCorrect" | "inputMode" | "autoComplete" | "maxLength" | "minLength" | "placeholder" | "readOnly" | "step"> & {
    value?: string | undefined;
    defaultValue?: string | undefined;
    onChange?: ((val: string) => void) | undefined;
    clearable?: boolean | undefined;
    clearIcon?: ReactNode;
    onlyShowClearWhenFocus?: boolean | undefined;
    onClear?: (() => void) | undefined;
    onEnterPress?: ((e: React.KeyboardEvent<HTMLInputElement>) => void) | undefined;
    min?: number | undefined;
    max?: number | undefined;
} & {
    className?: string | undefined;
    style?: (React.CSSProperties & Partial<Record<"--color" | "--font-size" | "--placeholder-color" | "--text-align", string>>) | undefined;
    tabIndex?: number | undefined;
} & React.AriaAttributes & AriaProps & React.RefAttributes<InputRef>>;
export {};
