import { type PropType, type ExtractPublicPropTypes } from 'vue';
import { type ThemeComponent } from '../../composables/useTheme';
declare const inputProps: {
    showPasswordToggle: {
        type: BooleanConstructor;
        default: boolean;
    };
    dir: {
        type: PropType<"rtl" | "ltr">;
        default: string;
    };
    icon: StringConstructor;
    iconLeft: StringConstructor;
    iconRight: StringConstructor;
    max: (StringConstructor | NumberConstructor)[];
    maxlength: (StringConstructor | NumberConstructor)[];
    min: (StringConstructor | NumberConstructor)[];
    minlength: (StringConstructor | NumberConstructor)[];
    placeholder: StringConstructor;
    type: {
        type: StringConstructor;
        default: string;
    };
    block: BooleanConstructor;
    modelValue: PropType<string | number | boolean | object | any[] | undefined>;
    id: StringConstructor;
    name: StringConstructor;
    readonly: BooleanConstructor;
    required: BooleanConstructor;
    validateOnInput: {
        readonly type: BooleanConstructor;
        readonly default: true;
    };
    label: StringConstructor;
    helper: StringConstructor;
    error: StringConstructor;
    hideFooter: BooleanConstructor;
    rules: {
        readonly type: ArrayConstructor;
        readonly default: () => never[];
    };
    tooltip: StringConstructor;
    disabled: BooleanConstructor;
    loading: BooleanConstructor;
    loadingLabel: StringConstructor;
    loadingStatus: {
        readonly type: PropType<import("../loader/Loader.vue").LoaderStatus>;
        readonly default: "active";
    };
    color: {
        readonly type: StringConstructor;
        readonly default: string | undefined;
    };
    size: {
        readonly type: PropType<import("../../composables/useCommon").Size>;
        readonly default: "md";
        readonly validator: (value: string) => boolean;
    };
};
export type InputProps = ExtractPublicPropTypes<typeof inputProps>;
type InternalClasses = 'wrapper' | 'input' | 'icon';
type InternalExtraData = {
    errorInternal: any;
};
export interface InputTheme extends ThemeComponent<InputProps, InternalClasses, InternalExtraData> {
}
declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
    showPasswordToggle: {
        type: BooleanConstructor;
        default: boolean;
    };
    dir: {
        type: PropType<"rtl" | "ltr">;
        default: string;
    };
    icon: StringConstructor;
    iconLeft: StringConstructor;
    iconRight: StringConstructor;
    max: (StringConstructor | NumberConstructor)[];
    maxlength: (StringConstructor | NumberConstructor)[];
    min: (StringConstructor | NumberConstructor)[];
    minlength: (StringConstructor | NumberConstructor)[];
    placeholder: StringConstructor;
    type: {
        type: StringConstructor;
        default: string;
    };
    block: BooleanConstructor;
    modelValue: PropType<string | number | boolean | object | any[] | undefined>;
    id: StringConstructor;
    name: StringConstructor;
    readonly: BooleanConstructor;
    required: BooleanConstructor;
    validateOnInput: {
        readonly type: BooleanConstructor;
        readonly default: true;
    };
    label: StringConstructor;
    helper: StringConstructor;
    error: StringConstructor;
    hideFooter: BooleanConstructor;
    rules: {
        readonly type: ArrayConstructor;
        readonly default: () => never[];
    };
    tooltip: StringConstructor;
    disabled: BooleanConstructor;
    loading: BooleanConstructor;
    loadingLabel: StringConstructor;
    loadingStatus: {
        readonly type: PropType<import("../loader/Loader.vue").LoaderStatus>;
        readonly default: "active";
    };
    color: {
        readonly type: StringConstructor;
        readonly default: string | undefined;
    };
    size: {
        readonly type: PropType<import("../../composables/useCommon").Size>;
        readonly default: "md";
        readonly validator: (value: string) => boolean;
    };
}, {
    focus: () => void | undefined;
    blur: () => void | undefined;
    reset: () => void;
    validate: (val?: any) => boolean;
    setError: (val: string) => void;
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, string[], string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
    showPasswordToggle: {
        type: BooleanConstructor;
        default: boolean;
    };
    dir: {
        type: PropType<"rtl" | "ltr">;
        default: string;
    };
    icon: StringConstructor;
    iconLeft: StringConstructor;
    iconRight: StringConstructor;
    max: (StringConstructor | NumberConstructor)[];
    maxlength: (StringConstructor | NumberConstructor)[];
    min: (StringConstructor | NumberConstructor)[];
    minlength: (StringConstructor | NumberConstructor)[];
    placeholder: StringConstructor;
    type: {
        type: StringConstructor;
        default: string;
    };
    block: BooleanConstructor;
    modelValue: PropType<string | number | boolean | object | any[] | undefined>;
    id: StringConstructor;
    name: StringConstructor;
    readonly: BooleanConstructor;
    required: BooleanConstructor;
    validateOnInput: {
        readonly type: BooleanConstructor;
        readonly default: true;
    };
    label: StringConstructor;
    helper: StringConstructor;
    error: StringConstructor;
    hideFooter: BooleanConstructor;
    rules: {
        readonly type: ArrayConstructor;
        readonly default: () => never[];
    };
    tooltip: StringConstructor;
    disabled: BooleanConstructor;
    loading: BooleanConstructor;
    loadingLabel: StringConstructor;
    loadingStatus: {
        readonly type: PropType<import("../loader/Loader.vue").LoaderStatus>;
        readonly default: "active";
    };
    color: {
        readonly type: StringConstructor;
        readonly default: string | undefined;
    };
    size: {
        readonly type: PropType<import("../../composables/useCommon").Size>;
        readonly default: "md";
        readonly validator: (value: string) => boolean;
    };
}>> & {
    [x: `on${Capitalize<string>}`]: ((...args: any[]) => any) | undefined;
}, {
    disabled: boolean;
    type: string;
    color: string;
    size: import("../../composables/useCommon").Size;
    block: boolean;
    loading: boolean;
    loadingStatus: import("../loader/Loader.vue").LoaderStatus;
    readonly: boolean;
    required: boolean;
    validateOnInput: boolean;
    hideFooter: boolean;
    rules: unknown[];
    showPasswordToggle: boolean;
    dir: "rtl" | "ltr";
}, {}>, {
    prefix?(_: {}): any;
    suffix?(_: {}): any;
}>;
export default _default;
type __VLS_WithTemplateSlots<T, S> = T & {
    new (): {
        $slots: S;
    };
};
