import type { ExtractPropTypes, PropType } from 'vue';
import type { ChangeEventHandler, CompositionEventHandler, FocusEventHandler, InputStatus, KeyboardEventHandler, MouseEventHandler, SizeType, VueNode } from '@antdv/ui/es/types';
import type { InputFocusOptions } from './utils/commonUtils';
export declare const inputDefaultValue: string;
export declare function commonInputProps(): {
    addonBefore: any;
    addonAfter: any;
    prefix: any;
    suffix: any;
    clearIcon: any;
    affixWrapperClassName: StringConstructor;
    groupClassName: StringConstructor;
    wrapperClassName: StringConstructor;
    inputClassName: StringConstructor;
    allowClear: {
        type: BooleanConstructor;
        default: any;
    };
};
export declare function baseInputProps(): {
    value: {
        type: PropType<string | number>;
        default: any;
    };
    defaultValue: {
        type: PropType<string | number>;
        default: any;
    };
    inputElement: any;
    prefixCls: StringConstructor;
    disabled: {
        type: BooleanConstructor;
        default: any;
    };
    focused: {
        type: BooleanConstructor;
        default: any;
    };
    triggerFocus: PropType<() => void>;
    readonly: {
        type: BooleanConstructor;
        default: any;
    };
    handleReset: PropType<MouseEventHandler>;
    hidden: {
        type: BooleanConstructor;
        default: any;
    };
    addonBefore: any;
    addonAfter: any;
    prefix: any;
    suffix: any;
    clearIcon: any;
    affixWrapperClassName: StringConstructor;
    groupClassName: StringConstructor;
    wrapperClassName: StringConstructor;
    inputClassName: StringConstructor;
    allowClear: {
        type: BooleanConstructor;
        default: any;
    };
};
export declare function inputProps(): {
    id: StringConstructor;
    placeholder: {
        type: PropType<string | number>;
    };
    autocomplete: StringConstructor;
    type: {
        type: PropType<"number" | "button" | "search" | "time" | "image" | "text" | "color" | "checkbox" | "radio" | "hidden" | "reset" | "range" | "submit" | "month" | "date" | "week" | "tel" | "url" | "email" | "datetime-local" | "file" | "password">;
        default: "number" | "button" | "search" | "time" | "image" | "text" | "color" | "checkbox" | "radio" | "hidden" | "reset" | "range" | "submit" | "month" | "date" | "week" | "tel" | "url" | "email" | "datetime-local" | "file" | "password";
    };
    name: StringConstructor;
    size: {
        type: PropType<SizeType>;
    };
    autofocus: {
        type: BooleanConstructor;
        default: any;
    };
    lazy: {
        type: BooleanConstructor;
        default: boolean;
    };
    maxlength: NumberConstructor;
    loading: {
        type: BooleanConstructor;
        default: any;
    };
    bordered: {
        type: BooleanConstructor;
        default: any;
    };
    showCount: {
        type: PropType<boolean | ShowCountProps>;
    };
    htmlSize: NumberConstructor;
    onPressEnter: PropType<KeyboardEventHandler>;
    onKeydown: PropType<KeyboardEventHandler>;
    onKeyup: PropType<KeyboardEventHandler>;
    onFocus: PropType<FocusEventHandler>;
    onBlur: PropType<FocusEventHandler>;
    onChange: PropType<ChangeEventHandler>;
    onInput: PropType<ChangeEventHandler>;
    'onUpdate:value': PropType<(val: string) => void>;
    onCompositionstart: PropType<CompositionEventHandler>;
    onCompositionend: PropType<CompositionEventHandler>;
    valueModifiers: ObjectConstructor;
    hidden: {
        type: BooleanConstructor;
        default: any;
    };
    status: PropType<InputStatus>;
    value: {
        type: PropType<string | number>;
        default: any;
    };
    defaultValue: {
        type: PropType<string | number>;
        default: any;
    };
    inputElement: any;
    prefixCls: StringConstructor;
    disabled: {
        type: BooleanConstructor;
        default: any;
    };
    focused: {
        type: BooleanConstructor;
        default: any;
    };
    triggerFocus: PropType<() => void>;
    readonly: {
        type: BooleanConstructor;
        default: any;
    };
    handleReset: PropType<MouseEventHandler>;
    addonBefore: any;
    addonAfter: any;
    prefix: any;
    suffix: any;
    clearIcon: any;
    affixWrapperClassName: StringConstructor;
    groupClassName: StringConstructor;
    wrapperClassName: StringConstructor;
    inputClassName: StringConstructor;
    allowClear: {
        type: BooleanConstructor;
        default: any;
    };
};
export type InputProps = Partial<ExtractPropTypes<ReturnType<typeof inputProps>>>;
export interface ShowCountProps {
    formatter: (args: {
        count: number;
        maxlength?: number;
        value?: string;
    }) => VueNode;
}
export interface InputRef {
    focus: (options?: InputFocusOptions) => void;
    blur: () => void;
    setSelectionRange: (start: number, end: number, direction?: 'forward' | 'backward' | 'none') => void;
    select: () => void;
    input: HTMLInputElement | null;
}
