import { PropType, DefineComponent, ExtractPropTypes, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
import { VueTypeValidableDef } from 'vue-types';
export interface BaseInputInnerExpose {
    focus: () => void;
    blur: () => void;
    input: HTMLInputElement | HTMLTextAreaElement | null;
    setSelectionRange: (start: number, end: number, direction?: 'forward' | 'backward' | 'none') => void;
    select: () => void;
    getSelectionStart: () => number | null;
    getSelectionEnd: () => number | null;
    getScrollTop: () => number | null;
    setScrollTop: (scrollTop: number) => void;
}
declare const BaseInputInner: DefineComponent<ExtractPropTypes<{
    disabled: VueTypeValidableDef<boolean>;
    type: VueTypeValidableDef<string> & {
        default: string;
    };
    value: VueTypeValidableDef<any>;
    tag: {
        type: PropType<"input" | "textarea">;
        default: string;
    };
    size: VueTypeValidableDef<string> & {
        default: string;
    };
    onChange: PropType<(e: Event) => void>;
    onInput: PropType<(e: Event) => void>;
    onBlur: PropType<(e: Event) => void>;
    onFocus: PropType<(e: Event) => void>;
    onKeydown: PropType<(e: Event) => void>;
    onCompositionstart: PropType<(e: Event) => void>;
    onCompositionend: PropType<(e: Event) => void>;
    onKeyup: PropType<(e: Event) => void>;
    onPaste: PropType<(e: Event) => void>;
    onMousedown: PropType<(e: Event) => void>;
}>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, ("input" | "change" | "blur" | "compositionend" | "compositionstart" | "focus" | "keydown" | "keyup" | "mousedown" | "paste")[], "input" | "change" | "blur" | "compositionend" | "compositionstart" | "focus" | "keydown" | "keyup" | "mousedown" | "paste", PublicProps, Readonly< ExtractPropTypes<{
    disabled: VueTypeValidableDef<boolean>;
    type: VueTypeValidableDef<string> & {
        default: string;
    };
    value: VueTypeValidableDef<any>;
    tag: {
        type: PropType<"input" | "textarea">;
        default: string;
    };
    size: VueTypeValidableDef<string> & {
        default: string;
    };
    onChange: PropType<(e: Event) => void>;
    onInput: PropType<(e: Event) => void>;
    onBlur: PropType<(e: Event) => void>;
    onFocus: PropType<(e: Event) => void>;
    onKeydown: PropType<(e: Event) => void>;
    onCompositionstart: PropType<(e: Event) => void>;
    onCompositionend: PropType<(e: Event) => void>;
    onKeyup: PropType<(e: Event) => void>;
    onPaste: PropType<(e: Event) => void>;
    onMousedown: PropType<(e: Event) => void>;
}>> & Readonly<{
    onPaste?: ((...args: any[]) => any) | undefined;
    onCompositionend?: ((...args: any[]) => any) | undefined;
    onCompositionstart?: ((...args: any[]) => any) | undefined;
    onFocus?: ((...args: any[]) => any) | undefined;
    onBlur?: ((...args: any[]) => any) | undefined;
    onChange?: ((...args: any[]) => any) | undefined;
    onInput?: ((...args: any[]) => any) | undefined;
    onKeydown?: ((...args: any[]) => any) | undefined;
    onKeyup?: ((...args: any[]) => any) | undefined;
    onMousedown?: ((...args: any[]) => any) | undefined;
}>, {
    size: string;
    type: string;
    tag: "input" | "textarea";
}, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>;
export default BaseInputInner;
