import { type PropType, type Ref } from 'vue';
import type { ExtractPublicPropTypes } from '../_util/interface';
import type { InputValue } from './interface';
export interface Autosize {
    minRows?: number;
    maxRows?: number;
}
export declare const inputProps: {
    readonly rows: {
        readonly type: NumberConstructor;
        readonly default: 2;
    };
    readonly showWordLimit: {
        readonly type: BooleanConstructor;
        readonly default: false;
    };
    readonly autosize: {
        readonly type: PropType<boolean | Autosize>;
        readonly default: boolean | Autosize;
    };
    readonly autofocus: {
        readonly type: BooleanConstructor;
        readonly default: false;
    };
    readonly resize: PropType<"vertical" | "horizontal" | "both" | "none" | "block" | "inline">;
    readonly modelValue: {
        readonly type: PropType<InputValue>;
    };
    readonly type: {
        readonly type: StringConstructor;
        readonly default: "text";
    };
    readonly placeholder: {
        readonly type: StringConstructor;
    };
    readonly readonly: {
        readonly type: BooleanConstructor;
        readonly default: false;
    };
    readonly disabled: {
        readonly type: BooleanConstructor;
        readonly default: false;
    };
    readonly clearable: {
        readonly type: BooleanConstructor;
        readonly default: false;
    };
    readonly maxlength: {
        readonly type: NumberConstructor;
    };
    readonly showPassword: {
        readonly type: BooleanConstructor;
        readonly default: false;
    };
    readonly inputStyle: {
        readonly type: PropType<import("vue").StyleValue>;
        readonly default: () => import("vue").StyleValue;
    };
    readonly autocomplete: {
        readonly type: StringConstructor;
        readonly default: "off";
    };
};
export type InputProps = ExtractPublicPropTypes<typeof inputProps>;
export declare function useWordLimit(currentValue: Ref<InputValue>, props: InputProps): {
    isWordLimitVisible: import("vue").ComputedRef<boolean>;
    textLength: import("vue").ComputedRef<number>;
};
declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
    readonly rows: {
        readonly type: NumberConstructor;
        readonly default: 2;
    };
    readonly showWordLimit: {
        readonly type: BooleanConstructor;
        readonly default: false;
    };
    readonly autosize: {
        readonly type: PropType<boolean | Autosize>;
        readonly default: boolean | Autosize;
    };
    readonly autofocus: {
        readonly type: BooleanConstructor;
        readonly default: false;
    };
    readonly resize: PropType<"vertical" | "horizontal" | "both" | "none" | "block" | "inline">;
    readonly modelValue: {
        readonly type: PropType<InputValue>;
    };
    readonly type: {
        readonly type: StringConstructor;
        readonly default: "text";
    };
    readonly placeholder: {
        readonly type: StringConstructor;
    };
    readonly readonly: {
        readonly type: BooleanConstructor;
        readonly default: false;
    };
    readonly disabled: {
        readonly type: BooleanConstructor;
        readonly default: false;
    };
    readonly clearable: {
        readonly type: BooleanConstructor;
        readonly default: false;
    };
    readonly maxlength: {
        readonly type: NumberConstructor;
    };
    readonly showPassword: {
        readonly type: BooleanConstructor;
        readonly default: false;
    };
    readonly inputStyle: {
        readonly type: PropType<import("vue").StyleValue>;
        readonly default: () => import("vue").StyleValue;
    };
    readonly autocomplete: {
        readonly type: StringConstructor;
        readonly default: "off";
    };
}>, {
    isWordLimitVisible: import("vue").ComputedRef<boolean>;
    textLength: import("vue").ComputedRef<number>;
    handleFocus: (event: Event) => void;
    handleBlur: (event: Event) => void;
    focus: () => void;
    blur: () => void;
    handleTextareaChange: (event: Event) => void;
    handleChange: (value: InputValue) => void;
    handleKeydown: (e: KeyboardEvent) => void;
    handleInputClear: () => void;
    onMouseLeave: (e: MouseEvent) => void;
    onMouseEnter: (e: MouseEvent) => void;
    textareaStyle: import("vue").ComputedRef<import("vue").StyleValue[]>;
    handleInput: (event: string | Event) => void;
    handleCompositionStart: () => void;
    handleCompositionEnd: (event: Event) => void;
    innerDisabled: import("vue").ComputedRef<boolean>;
    isError: Ref<boolean, boolean>;
    inputRef: Ref<any, any>;
    textareaRef: Ref<any, any>;
    prefixCls: string;
    textareaPrefixCls: string;
    classes: import("vue").ComputedRef<(string | {
        'is-error': boolean;
    })[]>;
    currentValue: import("vue").WritableComputedRef<InputValue, InputValue>;
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("clear" | "change" | "update:modelValue" | "blur" | "focus" | "input" | "keydown" | "mouseenter" | "mouseleave")[], "clear" | "change" | "update:modelValue" | "blur" | "focus" | "input" | "keydown" | "mouseenter" | "mouseleave", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
    readonly rows: {
        readonly type: NumberConstructor;
        readonly default: 2;
    };
    readonly showWordLimit: {
        readonly type: BooleanConstructor;
        readonly default: false;
    };
    readonly autosize: {
        readonly type: PropType<boolean | Autosize>;
        readonly default: boolean | Autosize;
    };
    readonly autofocus: {
        readonly type: BooleanConstructor;
        readonly default: false;
    };
    readonly resize: PropType<"vertical" | "horizontal" | "both" | "none" | "block" | "inline">;
    readonly modelValue: {
        readonly type: PropType<InputValue>;
    };
    readonly type: {
        readonly type: StringConstructor;
        readonly default: "text";
    };
    readonly placeholder: {
        readonly type: StringConstructor;
    };
    readonly readonly: {
        readonly type: BooleanConstructor;
        readonly default: false;
    };
    readonly disabled: {
        readonly type: BooleanConstructor;
        readonly default: false;
    };
    readonly clearable: {
        readonly type: BooleanConstructor;
        readonly default: false;
    };
    readonly maxlength: {
        readonly type: NumberConstructor;
    };
    readonly showPassword: {
        readonly type: BooleanConstructor;
        readonly default: false;
    };
    readonly inputStyle: {
        readonly type: PropType<import("vue").StyleValue>;
        readonly default: () => import("vue").StyleValue;
    };
    readonly autocomplete: {
        readonly type: StringConstructor;
        readonly default: "off";
    };
}>> & Readonly<{
    onFocus?: (...args: any[]) => any;
    onBlur?: (...args: any[]) => any;
    onChange?: (...args: any[]) => any;
    onInput?: (...args: any[]) => any;
    onKeydown?: (...args: any[]) => any;
    onMouseenter?: (...args: any[]) => any;
    onMouseleave?: (...args: any[]) => any;
    "onUpdate:modelValue"?: (...args: any[]) => any;
    onClear?: (...args: any[]) => any;
}>, {
    readonly type: string;
    readonly disabled: boolean;
    readonly clearable: boolean;
    readonly readonly: boolean;
    readonly showPassword: boolean;
    readonly inputStyle: import("vue").StyleValue;
    readonly autocomplete: string;
    readonly rows: number;
    readonly showWordLimit: boolean;
    readonly autosize: boolean | Autosize;
    readonly autofocus: boolean;
}, {}, {
    InputInner: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
        readonly innerIsFocus: BooleanConstructor;
        readonly innerIsError: BooleanConstructor;
        readonly canEdit: {
            readonly type: BooleanConstructor;
            readonly default: true;
        };
        readonly modelValue: {
            readonly type: PropType<InputValue>;
        };
        readonly type: {
            readonly type: StringConstructor;
            readonly default: "text";
        };
        readonly placeholder: {
            readonly type: StringConstructor;
        };
        readonly readonly: {
            readonly type: BooleanConstructor;
            readonly default: false;
        };
        readonly disabled: {
            readonly type: BooleanConstructor;
            readonly default: false;
        };
        readonly clearable: {
            readonly type: BooleanConstructor;
            readonly default: false;
        };
        readonly maxlength: {
            readonly type: NumberConstructor;
        };
        readonly showPassword: {
            readonly type: BooleanConstructor;
            readonly default: false;
        };
        readonly inputStyle: {
            readonly type: PropType<import("vue").StyleValue>;
            readonly default: () => import("vue").StyleValue;
        };
        readonly autocomplete: {
            readonly type: StringConstructor;
            readonly default: "off";
        };
    }>, {
        passwordVisible: Ref<boolean, boolean>;
        handlePasswordVisible: () => void;
        showPwdSwitchIcon: import("vue").ComputedRef<boolean>;
        handleInput: (event: string | Event) => void;
        handleCompositionStart: () => void;
        handleCompositionEnd: (event: Event) => void;
        inputRefEl: Ref<HTMLElement, HTMLElement>;
        focus: () => void;
        blur: () => void;
        focused: Ref<boolean, boolean>;
        handleFocus: (event: Event) => void;
        handleBlur: (event: Event) => void;
        showClear: import("vue").ComputedRef<boolean>;
        clear: () => void;
        handleChange: import("lodash-es").DebouncedFunc<(event: Event) => void>;
        onMouseLeave: (e: MouseEvent) => void;
        onMouseEnter: (e: MouseEvent) => void;
        handleMousedown: (e: MouseEvent) => void;
        handleKeydown: (e: KeyboardEvent) => void;
        prefixCls: string;
        suffixVisible: import("vue").ComputedRef<boolean>;
        currentValue: import("vue").WritableComputedRef<InputValue, InputValue>;
    }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("clear" | "change" | "update:modelValue" | "blur" | "focus" | "input" | "keydown" | "mouseenter" | "mouseleave")[], "clear" | "change" | "update:modelValue" | "blur" | "focus" | "input" | "keydown" | "mouseenter" | "mouseleave", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
        readonly innerIsFocus: BooleanConstructor;
        readonly innerIsError: BooleanConstructor;
        readonly canEdit: {
            readonly type: BooleanConstructor;
            readonly default: true;
        };
        readonly modelValue: {
            readonly type: PropType<InputValue>;
        };
        readonly type: {
            readonly type: StringConstructor;
            readonly default: "text";
        };
        readonly placeholder: {
            readonly type: StringConstructor;
        };
        readonly readonly: {
            readonly type: BooleanConstructor;
            readonly default: false;
        };
        readonly disabled: {
            readonly type: BooleanConstructor;
            readonly default: false;
        };
        readonly clearable: {
            readonly type: BooleanConstructor;
            readonly default: false;
        };
        readonly maxlength: {
            readonly type: NumberConstructor;
        };
        readonly showPassword: {
            readonly type: BooleanConstructor;
            readonly default: false;
        };
        readonly inputStyle: {
            readonly type: PropType<import("vue").StyleValue>;
            readonly default: () => import("vue").StyleValue;
        };
        readonly autocomplete: {
            readonly type: StringConstructor;
            readonly default: "off";
        };
    }>> & Readonly<{
        onFocus?: (...args: any[]) => any;
        onBlur?: (...args: any[]) => any;
        onChange?: (...args: any[]) => any;
        onInput?: (...args: any[]) => any;
        onKeydown?: (...args: any[]) => any;
        onMouseenter?: (...args: any[]) => any;
        onMouseleave?: (...args: any[]) => any;
        "onUpdate:modelValue"?: (...args: any[]) => any;
        onClear?: (...args: any[]) => any;
    }>, {
        readonly type: string;
        readonly disabled: boolean;
        readonly clearable: boolean;
        readonly canEdit: boolean;
        readonly innerIsFocus: boolean;
        readonly innerIsError: boolean;
        readonly readonly: boolean;
        readonly showPassword: boolean;
        readonly inputStyle: import("vue").StyleValue;
        readonly autocomplete: string;
    }, {}, {
        EyeOutlined: (props?: import("../icon/IconWrapper").IconProps) => import("vue/jsx-runtime").JSX.Element;
        EyeInvisibleOutlined: (props?: import("../icon/IconWrapper").IconProps) => import("vue/jsx-runtime").JSX.Element;
        CloseCircleFilled: (props?: import("../icon/IconWrapper").IconProps) => import("vue/jsx-runtime").JSX.Element;
    }, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
export default _default;
