import { PropType, DefineComponent, ExtractPropTypes, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
import { VueTypeValidableDef, VueTypeDef } from 'vue-types';
export interface BaseInputExpose {
    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 BaseInput: DefineComponent<ExtractPropTypes<{
    disabled: VueTypeValidableDef<boolean>;
    type: VueTypeValidableDef<string> & {
        default: string;
    };
    value: VueTypeValidableDef<any>;
    lazy: VueTypeValidableDef<boolean> & {
        default: boolean;
    } & {
        default: boolean;
    };
    tag: {
        type: PropType<"input" | "textarea">;
        default: string;
    };
    size: VueTypeValidableDef<string> & {
        default: string;
    };
    style: VueTypeDef<string | {
        [key: string]: any;
    }>;
    class: VueTypeValidableDef<string> & {
        default: string;
    };
}>, () => 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>;
    lazy: VueTypeValidableDef<boolean> & {
        default: boolean;
    } & {
        default: boolean;
    };
    tag: {
        type: PropType<"input" | "textarea">;
        default: string;
    };
    size: VueTypeValidableDef<string> & {
        default: string;
    };
    style: VueTypeDef<string | {
        [key: string]: any;
    }>;
    class: VueTypeValidableDef<string> & {
        default: string;
    };
}>> & 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;
    class: string;
    type: string;
    tag: "input" | "textarea";
    lazy: boolean;
}, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>;
export default BaseInput;
