import { type StyleValue } from 'vue';
import { type DefaultProps } from '../config';
import { InputNativeEmits, InputNativeProps, TextareaNativeEmits, TextareaNativeProps } from '../input-base/common';
export interface InputProps extends Omit<InputNativeProps, 'type'>, TextareaNativeProps {
    type?: InputNativeProps['type'] | 'password' | 'textarea';
    rootClass?: string;
    rootStyle?: StyleValue;
    modelValue?: string | number;
    clearable?: boolean;
    showClearOnlyFocus?: boolean;
    showCount?: boolean;
    inlaid?: boolean;
    borderless?: boolean;
    readonly?: boolean;
    focused?: boolean;
    minHeight?: string;
    validateEvent?: boolean;
    showEye?: boolean;
    inputMinHeight?: boolean;
    size?: 'mini' | 'small' | 'medium' | 'large';
    internalPrepend?: number;
}
export declare const defaultInputProps: () => DefaultProps<InputProps>;
export interface InputSlots {
    prepend?(props: Record<string, never>): any;
    append?(props: Record<string, never>): any;
    addon?(props: Record<string, never>): any;
}
export interface InputEmits extends InputNativeEmits, TextareaNativeEmits {
    (e: 'update:model-value', value: string): void;
    (e: 'change', value: string): void;
    (e: 'clear'): void;
    (e: 'click', event: any): void;
}
export declare const lastFocusInput: import("vue").ShallowRef<string, string>;
