import type { PropType, ComponentInternalInstance, ExtractPropTypes, VNodeChild, VNode, RendererNode, RendererElement, VNodeProps, AllowedComponentProps, ComponentCustomProps, Slot, ComponentPublicInstance, ComponentOptionsBase, ComponentOptionsMixin, DebuggerEvent, nextTick, WatchOptions, WatchStopHandle, ShallowUnwrapRef, ComponentCustomProperties, Ref } from 'vue';
import type { MakeSlots } from '../../utils';
export interface InputControlSlot {
    isActive: boolean;
    isDirty: boolean;
    isFocused: boolean;
    inputRef: Ref<HTMLInputElement | undefined>;
    controlRef: Ref<HTMLElement | undefined>;
    blur: () => void;
    focus: () => void;
}
export declare type InputControlDefaultSlot = InputControlSlot & {
    props: Record<string, unknown>;
};
export declare type InputControlSlots = MakeSlots<{
    'prepend-inner': [InputControlSlot];
    prefix: [InputControlSlot];
    default: [InputControlDefaultSlot];
    suffix: [InputControlSlot];
    'append-inner': [InputControlSlot];
    clear: [InputControlSlot];
}>;
export declare const makeInputControlProps: <Defaults extends {
    shape?: unknown;
    color?: unknown;
    textColor?: unknown;
    variant?: unknown;
    appendInnerIcon?: unknown;
    clearable?: unknown;
    clearIcon?: unknown;
    disabled?: unknown;
    prependInnerIcon?: unknown;
    prefix?: unknown;
    prefixIcon?: unknown;
    suffix?: unknown;
    suffixIcon?: unknown;
} = {}>(defaults?: Defaults | undefined) => {
    shape: unknown extends Defaults["shape"] ? Omit<{
        type: PropType<"tile" | "rounded-sm" | "rounded" | "rounded-lg" | "pill" | "circle">;
        default: string;
    }, "default" | "type"> & {
        type: PropType<NonNullable<"tile" | "rounded-sm" | "rounded" | "rounded-lg" | "pill" | "circle">>;
        default: NonNullable<"tile" | "rounded-sm" | "rounded" | "rounded-lg" | "pill" | "circle">;
    } : Omit<Omit<{
        type: PropType<"tile" | "rounded-sm" | "rounded" | "rounded-lg" | "pill" | "circle">;
        default: string;
    }, "default" | "type"> & {
        type: PropType<NonNullable<"tile" | "rounded-sm" | "rounded" | "rounded-lg" | "pill" | "circle">>;
        default: NonNullable<"tile" | "rounded-sm" | "rounded" | "rounded-lg" | "pill" | "circle">;
    }, "default" | "type"> & {
        type: PropType<unknown extends Defaults["shape"] ? NonNullable<"tile" | "rounded-sm" | "rounded" | "rounded-lg" | "pill" | "circle"> : NonNullable<NonNullable<"tile" | "rounded-sm" | "rounded" | "rounded-lg" | "pill" | "circle">> | Defaults["shape"]>;
        default: unknown extends Defaults["shape"] ? NonNullable<"tile" | "rounded-sm" | "rounded" | "rounded-lg" | "pill" | "circle"> : NonNullable<NonNullable<"tile" | "rounded-sm" | "rounded" | "rounded-lg" | "pill" | "circle">> | Defaults["shape"];
    };
    color: unknown extends Defaults["color"] ? StringConstructor : {
        type: PropType<unknown extends Defaults["color"] ? string : string | Defaults["color"]>;
        default: unknown extends Defaults["color"] ? string : string | Defaults["color"];
    };
    textColor: unknown extends Defaults["textColor"] ? StringConstructor : {
        type: PropType<unknown extends Defaults["textColor"] ? string : string | Defaults["textColor"]>;
        default: unknown extends Defaults["textColor"] ? string : string | Defaults["textColor"];
    };
    variant: unknown extends Defaults["variant"] ? Omit<{
        type: PropType<"text" | "contained" | "outlined" | "plain" | "contained-text" | "contained-outlined">;
        default: string;
        validator: (v: any) => boolean;
    }, "default" | "type"> & {
        type: PropType<NonNullable<"text" | "contained" | "outlined" | "plain" | "contained-text" | "contained-outlined">>;
        default: NonNullable<"text" | "contained" | "outlined" | "plain" | "contained-text" | "contained-outlined">;
    } : Omit<Omit<{
        type: PropType<"text" | "contained" | "outlined" | "plain" | "contained-text" | "contained-outlined">;
        default: string;
        validator: (v: any) => boolean;
    }, "default" | "type"> & {
        type: PropType<NonNullable<"text" | "contained" | "outlined" | "plain" | "contained-text" | "contained-outlined">>;
        default: NonNullable<"text" | "contained" | "outlined" | "plain" | "contained-text" | "contained-outlined">;
    }, "default" | "type"> & {
        type: PropType<unknown extends Defaults["variant"] ? NonNullable<"text" | "contained" | "outlined" | "plain" | "contained-text" | "contained-outlined"> : NonNullable<NonNullable<"text" | "contained" | "outlined" | "plain" | "contained-text" | "contained-outlined">> | Defaults["variant"]>;
        default: unknown extends Defaults["variant"] ? NonNullable<"text" | "contained" | "outlined" | "plain" | "contained-text" | "contained-outlined"> : NonNullable<NonNullable<"text" | "contained" | "outlined" | "plain" | "contained-text" | "contained-outlined">> | Defaults["variant"];
    };
    appendInnerIcon: unknown extends Defaults["appendInnerIcon"] ? (StringConstructor | ObjectConstructor)[] : {
        type: PropType<unknown extends Defaults["appendInnerIcon"] ? unknown : {} | Defaults["appendInnerIcon"]>;
        default: unknown extends Defaults["appendInnerIcon"] ? unknown : {} | Defaults["appendInnerIcon"];
    };
    clearable: unknown extends Defaults["clearable"] ? BooleanConstructor : {
        type: PropType<unknown extends Defaults["clearable"] ? boolean : boolean | Defaults["clearable"]>;
        default: unknown extends Defaults["clearable"] ? boolean : boolean | Defaults["clearable"];
    };
    clearIcon: unknown extends Defaults["clearIcon"] ? {
        type: (StringConstructor | ObjectConstructor)[];
        default: string;
    } : Omit<{
        type: (StringConstructor | ObjectConstructor)[];
        default: string;
    }, "default" | "type"> & {
        type: PropType<unknown extends Defaults["clearIcon"] ? string : string | Defaults["clearIcon"]>;
        default: unknown extends Defaults["clearIcon"] ? string : string | Defaults["clearIcon"];
    };
    disabled: unknown extends Defaults["disabled"] ? BooleanConstructor : {
        type: PropType<unknown extends Defaults["disabled"] ? boolean : boolean | Defaults["disabled"]>;
        default: unknown extends Defaults["disabled"] ? boolean : boolean | Defaults["disabled"];
    };
    prependInnerIcon: unknown extends Defaults["prependInnerIcon"] ? (StringConstructor | ObjectConstructor)[] : {
        type: PropType<unknown extends Defaults["prependInnerIcon"] ? unknown : {} | Defaults["prependInnerIcon"]>;
        default: unknown extends Defaults["prependInnerIcon"] ? unknown : {} | Defaults["prependInnerIcon"];
    };
    prefix: unknown extends Defaults["prefix"] ? StringConstructor : {
        type: PropType<unknown extends Defaults["prefix"] ? string : string | Defaults["prefix"]>;
        default: unknown extends Defaults["prefix"] ? string : string | Defaults["prefix"];
    };
    prefixIcon: unknown extends Defaults["prefixIcon"] ? (StringConstructor | ObjectConstructor)[] : {
        type: PropType<unknown extends Defaults["prefixIcon"] ? unknown : {} | Defaults["prefixIcon"]>;
        default: unknown extends Defaults["prefixIcon"] ? unknown : {} | Defaults["prefixIcon"];
    };
    suffix: unknown extends Defaults["suffix"] ? StringConstructor : {
        type: PropType<unknown extends Defaults["suffix"] ? string : string | Defaults["suffix"]>;
        default: unknown extends Defaults["suffix"] ? string : string | Defaults["suffix"];
    };
    suffixIcon: unknown extends Defaults["suffixIcon"] ? (StringConstructor | ObjectConstructor)[] : {
        type: PropType<unknown extends Defaults["suffixIcon"] ? unknown : {} | Defaults["suffixIcon"]>;
        default: unknown extends Defaults["suffixIcon"] ? unknown : {} | Defaults["suffixIcon"];
    };
};
export declare function filterInputControlSlots(slots: Record<string, unknown>): [yes: Partial<Pick<Record<string, unknown>, string>>, no: Omit<Record<string, unknown>, string>];
export declare const InputControlEmits: {
    'click:clear': (_event: MouseEvent) => boolean;
    'click:prepend-inner': (_event: MouseEvent) => boolean;
    'click:prefix': (_event: MouseEvent) => boolean;
    'click:suffix': (_event: MouseEvent) => boolean;
    'click:append-inner': (_event: MouseEvent) => boolean;
    'click:control': (_event: MouseEvent) => boolean;
    'update:active': (_active: boolean) => boolean;
    'update:modelValue': (_modelValue: any) => boolean;
};
export declare const InputControlSlots: string[];
export declare const InputControl: {
    new (...args: any[]): {
        $: ComponentInternalInstance;
        $data: {};
        $props: Partial<{
            disabled: boolean;
            variant: NonNullable<"text" | "contained" | "outlined" | "plain" | "contained-text" | "contained-outlined">;
            shape: NonNullable<"tile" | "rounded-sm" | "rounded" | "rounded-lg" | "pill" | "circle">;
            active: boolean;
            clearable: boolean;
            clearIcon: string | Record<string, any>;
            dirty: boolean;
        }> & Omit<Readonly<ExtractPropTypes<{
            shape: Omit<{
                type: PropType<"tile" | "rounded-sm" | "rounded" | "rounded-lg" | "pill" | "circle">;
                default: string;
            }, "default" | "type"> & {
                type: PropType<NonNullable<"tile" | "rounded-sm" | "rounded" | "rounded-lg" | "pill" | "circle">>;
                default: NonNullable<"tile" | "rounded-sm" | "rounded" | "rounded-lg" | "pill" | "circle">;
            };
            color: StringConstructor;
            textColor: StringConstructor;
            variant: Omit<{
                type: PropType<"text" | "contained" | "outlined" | "plain" | "contained-text" | "contained-outlined">;
                default: string;
                validator: (v: any) => boolean;
            }, "default" | "type"> & {
                type: PropType<NonNullable<"text" | "contained" | "outlined" | "plain" | "contained-text" | "contained-outlined">>;
                default: NonNullable<"text" | "contained" | "outlined" | "plain" | "contained-text" | "contained-outlined">;
            };
            appendInnerIcon: (StringConstructor | ObjectConstructor)[];
            clearable: BooleanConstructor;
            clearIcon: {
                type: (StringConstructor | ObjectConstructor)[];
                default: string;
            };
            disabled: BooleanConstructor;
            prependInnerIcon: (StringConstructor | ObjectConstructor)[];
            prefix: StringConstructor;
            prefixIcon: (StringConstructor | ObjectConstructor)[];
            suffix: StringConstructor;
            suffixIcon: (StringConstructor | ObjectConstructor)[];
            active: BooleanConstructor;
            dirty: BooleanConstructor;
        } & {
            $children: () => VNodeChild | ((args_0: InputControlDefaultSlot) => VNode<RendererNode, RendererElement, {
                [key: string]: any;
            }> | VNode<RendererNode, RendererElement, {
                [key: string]: any;
            }>[]) | {
                'prepend-inner'?: VNodeChild | ((args_0: InputControlSlot) => VNode<RendererNode, RendererElement, {
                    [key: string]: any;
                }> | VNode<RendererNode, RendererElement, {
                    [key: string]: any;
                }>[]);
                prefix?: VNodeChild | ((args_0: InputControlSlot) => VNode<RendererNode, RendererElement, {
                    [key: string]: any;
                }> | VNode<RendererNode, RendererElement, {
                    [key: string]: any;
                }>[]);
                default?: VNodeChild | ((args_0: InputControlDefaultSlot) => VNode<RendererNode, RendererElement, {
                    [key: string]: any;
                }> | VNode<RendererNode, RendererElement, {
                    [key: string]: any;
                }>[]);
                suffix?: VNodeChild | ((args_0: InputControlSlot) => VNode<RendererNode, RendererElement, {
                    [key: string]: any;
                }> | VNode<RendererNode, RendererElement, {
                    [key: string]: any;
                }>[]);
                'append-inner'?: VNodeChild | ((args_0: InputControlSlot) => VNode<RendererNode, RendererElement, {
                    [key: string]: any;
                }> | VNode<RendererNode, RendererElement, {
                    [key: string]: any;
                }>[]);
                clear?: VNodeChild | ((args_0: InputControlSlot) => VNode<RendererNode, RendererElement, {
                    [key: string]: any;
                }> | VNode<RendererNode, RendererElement, {
                    [key: string]: any;
                }>[]);
            };
            'v-slots': new () => {
                'prepend-inner'?: false | ((args_0: InputControlSlot) => VNode<RendererNode, RendererElement, {
                    [key: string]: any;
                }> | VNode<RendererNode, RendererElement, {
                    [key: string]: any;
                }>[]) | undefined;
                prefix?: false | ((args_0: InputControlSlot) => VNode<RendererNode, RendererElement, {
                    [key: string]: any;
                }> | VNode<RendererNode, RendererElement, {
                    [key: string]: any;
                }>[]) | undefined;
                default?: false | ((args_0: InputControlDefaultSlot) => VNode<RendererNode, RendererElement, {
                    [key: string]: any;
                }> | VNode<RendererNode, RendererElement, {
                    [key: string]: any;
                }>[]) | undefined;
                suffix?: false | ((args_0: InputControlSlot) => VNode<RendererNode, RendererElement, {
                    [key: string]: any;
                }> | VNode<RendererNode, RendererElement, {
                    [key: string]: any;
                }>[]) | undefined;
                'append-inner'?: false | ((args_0: InputControlSlot) => VNode<RendererNode, RendererElement, {
                    [key: string]: any;
                }> | VNode<RendererNode, RendererElement, {
                    [key: string]: any;
                }>[]) | undefined;
                clear?: false | ((args_0: InputControlSlot) => VNode<RendererNode, RendererElement, {
                    [key: string]: any;
                }> | VNode<RendererNode, RendererElement, {
                    [key: string]: any;
                }>[]) | undefined;
            };
        }>> & {
            "onUpdate:modelValue"?: ((_modelValue: any) => any) | undefined;
            "onClick:clear"?: ((_event: MouseEvent) => any) | undefined;
            "onClick:prepend-inner"?: ((_event: MouseEvent) => any) | undefined;
            "onClick:prefix"?: ((_event: MouseEvent) => any) | undefined;
            "onClick:suffix"?: ((_event: MouseEvent) => any) | undefined;
            "onClick:append-inner"?: ((_event: MouseEvent) => any) | undefined;
            "onClick:control"?: ((_event: MouseEvent) => any) | undefined;
            "onUpdate:active"?: ((_active: boolean) => any) | undefined;
        } & VNodeProps & AllowedComponentProps & ComponentCustomProps, "disabled" | "variant" | "shape" | "active" | "clearable" | "clearIcon" | "dirty">;
        $attrs: {
            [x: string]: unknown;
        };
        $refs: {
            [x: string]: unknown;
        };
        $slots: Readonly<{
            [name: string]: Slot | undefined;
        }>;
        $root: ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}, {}, string>, {}> | null;
        $parent: ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}, {}, string>, {}> | null;
        $emit: ((event: "update:modelValue", _modelValue: any) => void) & ((event: "click:clear", _event: MouseEvent) => void) & ((event: "click:prepend-inner", _event: MouseEvent) => void) & ((event: "click:prefix", _event: MouseEvent) => void) & ((event: "click:suffix", _event: MouseEvent) => void) & ((event: "click:append-inner", _event: MouseEvent) => void) & ((event: "click:control", _event: MouseEvent) => void) & ((event: "update:active", _active: boolean) => void);
        $el: any;
        $options: ComponentOptionsBase<Readonly<ExtractPropTypes<{
            shape: Omit<{
                type: PropType<"tile" | "rounded-sm" | "rounded" | "rounded-lg" | "pill" | "circle">;
                default: string;
            }, "default" | "type"> & {
                type: PropType<NonNullable<"tile" | "rounded-sm" | "rounded" | "rounded-lg" | "pill" | "circle">>;
                default: NonNullable<"tile" | "rounded-sm" | "rounded" | "rounded-lg" | "pill" | "circle">;
            };
            color: StringConstructor;
            textColor: StringConstructor;
            variant: Omit<{
                type: PropType<"text" | "contained" | "outlined" | "plain" | "contained-text" | "contained-outlined">;
                default: string;
                validator: (v: any) => boolean;
            }, "default" | "type"> & {
                type: PropType<NonNullable<"text" | "contained" | "outlined" | "plain" | "contained-text" | "contained-outlined">>;
                default: NonNullable<"text" | "contained" | "outlined" | "plain" | "contained-text" | "contained-outlined">;
            };
            appendInnerIcon: (StringConstructor | ObjectConstructor)[];
            clearable: BooleanConstructor;
            clearIcon: {
                type: (StringConstructor | ObjectConstructor)[];
                default: string;
            };
            disabled: BooleanConstructor;
            prependInnerIcon: (StringConstructor | ObjectConstructor)[];
            prefix: StringConstructor;
            prefixIcon: (StringConstructor | ObjectConstructor)[];
            suffix: StringConstructor;
            suffixIcon: (StringConstructor | ObjectConstructor)[];
            active: BooleanConstructor;
            dirty: BooleanConstructor;
        } & {
            $children: () => VNodeChild | ((args_0: InputControlDefaultSlot) => VNode<RendererNode, RendererElement, {
                [key: string]: any;
            }> | VNode<RendererNode, RendererElement, {
                [key: string]: any;
            }>[]) | {
                'prepend-inner'?: VNodeChild | ((args_0: InputControlSlot) => VNode<RendererNode, RendererElement, {
                    [key: string]: any;
                }> | VNode<RendererNode, RendererElement, {
                    [key: string]: any;
                }>[]);
                prefix?: VNodeChild | ((args_0: InputControlSlot) => VNode<RendererNode, RendererElement, {
                    [key: string]: any;
                }> | VNode<RendererNode, RendererElement, {
                    [key: string]: any;
                }>[]);
                default?: VNodeChild | ((args_0: InputControlDefaultSlot) => VNode<RendererNode, RendererElement, {
                    [key: string]: any;
                }> | VNode<RendererNode, RendererElement, {
                    [key: string]: any;
                }>[]);
                suffix?: VNodeChild | ((args_0: InputControlSlot) => VNode<RendererNode, RendererElement, {
                    [key: string]: any;
                }> | VNode<RendererNode, RendererElement, {
                    [key: string]: any;
                }>[]);
                'append-inner'?: VNodeChild | ((args_0: InputControlSlot) => VNode<RendererNode, RendererElement, {
                    [key: string]: any;
                }> | VNode<RendererNode, RendererElement, {
                    [key: string]: any;
                }>[]);
                clear?: VNodeChild | ((args_0: InputControlSlot) => VNode<RendererNode, RendererElement, {
                    [key: string]: any;
                }> | VNode<RendererNode, RendererElement, {
                    [key: string]: any;
                }>[]);
            };
            'v-slots': new () => {
                'prepend-inner'?: false | ((args_0: InputControlSlot) => VNode<RendererNode, RendererElement, {
                    [key: string]: any;
                }> | VNode<RendererNode, RendererElement, {
                    [key: string]: any;
                }>[]) | undefined;
                prefix?: false | ((args_0: InputControlSlot) => VNode<RendererNode, RendererElement, {
                    [key: string]: any;
                }> | VNode<RendererNode, RendererElement, {
                    [key: string]: any;
                }>[]) | undefined;
                default?: false | ((args_0: InputControlDefaultSlot) => VNode<RendererNode, RendererElement, {
                    [key: string]: any;
                }> | VNode<RendererNode, RendererElement, {
                    [key: string]: any;
                }>[]) | undefined;
                suffix?: false | ((args_0: InputControlSlot) => VNode<RendererNode, RendererElement, {
                    [key: string]: any;
                }> | VNode<RendererNode, RendererElement, {
                    [key: string]: any;
                }>[]) | undefined;
                'append-inner'?: false | ((args_0: InputControlSlot) => VNode<RendererNode, RendererElement, {
                    [key: string]: any;
                }> | VNode<RendererNode, RendererElement, {
                    [key: string]: any;
                }>[]) | undefined;
                clear?: false | ((args_0: InputControlSlot) => VNode<RendererNode, RendererElement, {
                    [key: string]: any;
                }> | VNode<RendererNode, RendererElement, {
                    [key: string]: any;
                }>[]) | undefined;
            };
        }>> & {
            "onUpdate:modelValue"?: ((_modelValue: any) => any) | undefined;
            "onClick:clear"?: ((_event: MouseEvent) => any) | undefined;
            "onClick:prepend-inner"?: ((_event: MouseEvent) => any) | undefined;
            "onClick:prefix"?: ((_event: MouseEvent) => any) | undefined;
            "onClick:suffix"?: ((_event: MouseEvent) => any) | undefined;
            "onClick:append-inner"?: ((_event: MouseEvent) => any) | undefined;
            "onClick:control"?: ((_event: MouseEvent) => any) | undefined;
            "onUpdate:active"?: ((_active: boolean) => any) | undefined;
        }, {
            inputRef: Ref<HTMLInputElement | undefined>;
            controlRef: Ref<HTMLElement | undefined>;
        }, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
            'click:clear': (_event: MouseEvent) => boolean;
            'click:prepend-inner': (_event: MouseEvent) => boolean;
            'click:prefix': (_event: MouseEvent) => boolean;
            'click:suffix': (_event: MouseEvent) => boolean;
            'click:append-inner': (_event: MouseEvent) => boolean;
            'click:control': (_event: MouseEvent) => boolean;
            'update:active': (_active: boolean) => boolean;
            'update:modelValue': (_modelValue: any) => boolean;
        }, string, {
            disabled: boolean;
            variant: NonNullable<"text" | "contained" | "outlined" | "plain" | "contained-text" | "contained-outlined">;
            shape: NonNullable<"tile" | "rounded-sm" | "rounded" | "rounded-lg" | "pill" | "circle">;
            active: boolean;
            clearable: boolean;
            clearIcon: string | Record<string, any>;
            dirty: boolean;
        }, {}, string> & {
            beforeCreate?: ((() => void) | (() => void)[]) | undefined;
            created?: ((() => void) | (() => void)[]) | undefined;
            beforeMount?: ((() => void) | (() => void)[]) | undefined;
            mounted?: ((() => void) | (() => void)[]) | undefined;
            beforeUpdate?: ((() => void) | (() => void)[]) | undefined;
            updated?: ((() => void) | (() => void)[]) | undefined;
            activated?: ((() => void) | (() => void)[]) | undefined;
            deactivated?: ((() => void) | (() => void)[]) | undefined;
            beforeDestroy?: ((() => void) | (() => void)[]) | undefined;
            beforeUnmount?: ((() => void) | (() => void)[]) | undefined;
            destroyed?: ((() => void) | (() => void)[]) | undefined;
            unmounted?: ((() => void) | (() => void)[]) | undefined;
            renderTracked?: (((e: DebuggerEvent) => void) | ((e: DebuggerEvent) => void)[]) | undefined;
            renderTriggered?: (((e: DebuggerEvent) => void) | ((e: DebuggerEvent) => void)[]) | undefined;
            errorCaptured?: (((err: unknown, instance: ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}, {}, string>, {}> | null, info: string) => boolean | void) | ((err: unknown, instance: ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}, {}, string>, {}> | null, info: string) => boolean | void)[]) | undefined;
        };
        $forceUpdate: () => void;
        $nextTick: typeof nextTick;
        $watch<T extends string | ((...args: any) => any)>(source: T, cb: T extends (...args: any) => infer R ? (args_0: R, args_1: R) => any : (...args: any) => any, options?: WatchOptions<boolean> | undefined): WatchStopHandle;
    } & Readonly<ExtractPropTypes<{
        shape: Omit<{
            type: PropType<"tile" | "rounded-sm" | "rounded" | "rounded-lg" | "pill" | "circle">;
            default: string;
        }, "default" | "type"> & {
            type: PropType<NonNullable<"tile" | "rounded-sm" | "rounded" | "rounded-lg" | "pill" | "circle">>;
            default: NonNullable<"tile" | "rounded-sm" | "rounded" | "rounded-lg" | "pill" | "circle">;
        };
        color: StringConstructor;
        textColor: StringConstructor;
        variant: Omit<{
            type: PropType<"text" | "contained" | "outlined" | "plain" | "contained-text" | "contained-outlined">;
            default: string;
            validator: (v: any) => boolean;
        }, "default" | "type"> & {
            type: PropType<NonNullable<"text" | "contained" | "outlined" | "plain" | "contained-text" | "contained-outlined">>;
            default: NonNullable<"text" | "contained" | "outlined" | "plain" | "contained-text" | "contained-outlined">;
        };
        appendInnerIcon: (StringConstructor | ObjectConstructor)[];
        clearable: BooleanConstructor;
        clearIcon: {
            type: (StringConstructor | ObjectConstructor)[];
            default: string;
        };
        disabled: BooleanConstructor;
        prependInnerIcon: (StringConstructor | ObjectConstructor)[];
        prefix: StringConstructor;
        prefixIcon: (StringConstructor | ObjectConstructor)[];
        suffix: StringConstructor;
        suffixIcon: (StringConstructor | ObjectConstructor)[];
        active: BooleanConstructor;
        dirty: BooleanConstructor;
    } & {
        $children: () => VNodeChild | ((args_0: InputControlDefaultSlot) => VNode<RendererNode, RendererElement, {
            [key: string]: any;
        }> | VNode<RendererNode, RendererElement, {
            [key: string]: any;
        }>[]) | {
            'prepend-inner'?: VNodeChild | ((args_0: InputControlSlot) => VNode<RendererNode, RendererElement, {
                [key: string]: any;
            }> | VNode<RendererNode, RendererElement, {
                [key: string]: any;
            }>[]);
            prefix?: VNodeChild | ((args_0: InputControlSlot) => VNode<RendererNode, RendererElement, {
                [key: string]: any;
            }> | VNode<RendererNode, RendererElement, {
                [key: string]: any;
            }>[]);
            default?: VNodeChild | ((args_0: InputControlDefaultSlot) => VNode<RendererNode, RendererElement, {
                [key: string]: any;
            }> | VNode<RendererNode, RendererElement, {
                [key: string]: any;
            }>[]);
            suffix?: VNodeChild | ((args_0: InputControlSlot) => VNode<RendererNode, RendererElement, {
                [key: string]: any;
            }> | VNode<RendererNode, RendererElement, {
                [key: string]: any;
            }>[]);
            'append-inner'?: VNodeChild | ((args_0: InputControlSlot) => VNode<RendererNode, RendererElement, {
                [key: string]: any;
            }> | VNode<RendererNode, RendererElement, {
                [key: string]: any;
            }>[]);
            clear?: VNodeChild | ((args_0: InputControlSlot) => VNode<RendererNode, RendererElement, {
                [key: string]: any;
            }> | VNode<RendererNode, RendererElement, {
                [key: string]: any;
            }>[]);
        };
        'v-slots': new () => {
            'prepend-inner'?: false | ((args_0: InputControlSlot) => VNode<RendererNode, RendererElement, {
                [key: string]: any;
            }> | VNode<RendererNode, RendererElement, {
                [key: string]: any;
            }>[]) | undefined;
            prefix?: false | ((args_0: InputControlSlot) => VNode<RendererNode, RendererElement, {
                [key: string]: any;
            }> | VNode<RendererNode, RendererElement, {
                [key: string]: any;
            }>[]) | undefined;
            default?: false | ((args_0: InputControlDefaultSlot) => VNode<RendererNode, RendererElement, {
                [key: string]: any;
            }> | VNode<RendererNode, RendererElement, {
                [key: string]: any;
            }>[]) | undefined;
            suffix?: false | ((args_0: InputControlSlot) => VNode<RendererNode, RendererElement, {
                [key: string]: any;
            }> | VNode<RendererNode, RendererElement, {
                [key: string]: any;
            }>[]) | undefined;
            'append-inner'?: false | ((args_0: InputControlSlot) => VNode<RendererNode, RendererElement, {
                [key: string]: any;
            }> | VNode<RendererNode, RendererElement, {
                [key: string]: any;
            }>[]) | undefined;
            clear?: false | ((args_0: InputControlSlot) => VNode<RendererNode, RendererElement, {
                [key: string]: any;
            }> | VNode<RendererNode, RendererElement, {
                [key: string]: any;
            }>[]) | undefined;
        };
    }>> & {
        "onUpdate:modelValue"?: ((_modelValue: any) => any) | undefined;
        "onClick:clear"?: ((_event: MouseEvent) => any) | undefined;
        "onClick:prepend-inner"?: ((_event: MouseEvent) => any) | undefined;
        "onClick:prefix"?: ((_event: MouseEvent) => any) | undefined;
        "onClick:suffix"?: ((_event: MouseEvent) => any) | undefined;
        "onClick:append-inner"?: ((_event: MouseEvent) => any) | undefined;
        "onClick:control"?: ((_event: MouseEvent) => any) | undefined;
        "onUpdate:active"?: ((_active: boolean) => any) | undefined;
    } & ShallowUnwrapRef<{
        inputRef: Ref<HTMLInputElement | undefined>;
        controlRef: Ref<HTMLElement | undefined>;
    }> & {} & ComponentCustomProperties & {};
    __isFragment?: undefined;
    __isTeleport?: undefined;
    __isSuspense?: undefined;
} & ComponentOptionsBase<Readonly<ExtractPropTypes<{
    shape: Omit<{
        type: PropType<"tile" | "rounded-sm" | "rounded" | "rounded-lg" | "pill" | "circle">;
        default: string;
    }, "default" | "type"> & {
        type: PropType<NonNullable<"tile" | "rounded-sm" | "rounded" | "rounded-lg" | "pill" | "circle">>;
        default: NonNullable<"tile" | "rounded-sm" | "rounded" | "rounded-lg" | "pill" | "circle">;
    };
    color: StringConstructor;
    textColor: StringConstructor;
    variant: Omit<{
        type: PropType<"text" | "contained" | "outlined" | "plain" | "contained-text" | "contained-outlined">;
        default: string;
        validator: (v: any) => boolean;
    }, "default" | "type"> & {
        type: PropType<NonNullable<"text" | "contained" | "outlined" | "plain" | "contained-text" | "contained-outlined">>;
        default: NonNullable<"text" | "contained" | "outlined" | "plain" | "contained-text" | "contained-outlined">;
    };
    appendInnerIcon: (StringConstructor | ObjectConstructor)[];
    clearable: BooleanConstructor;
    clearIcon: {
        type: (StringConstructor | ObjectConstructor)[];
        default: string;
    };
    disabled: BooleanConstructor;
    prependInnerIcon: (StringConstructor | ObjectConstructor)[];
    prefix: StringConstructor;
    prefixIcon: (StringConstructor | ObjectConstructor)[];
    suffix: StringConstructor;
    suffixIcon: (StringConstructor | ObjectConstructor)[];
    active: BooleanConstructor;
    dirty: BooleanConstructor;
} & {
    $children: () => VNodeChild | ((args_0: InputControlDefaultSlot) => VNode<RendererNode, RendererElement, {
        [key: string]: any;
    }> | VNode<RendererNode, RendererElement, {
        [key: string]: any;
    }>[]) | {
        'prepend-inner'?: VNodeChild | ((args_0: InputControlSlot) => VNode<RendererNode, RendererElement, {
            [key: string]: any;
        }> | VNode<RendererNode, RendererElement, {
            [key: string]: any;
        }>[]);
        prefix?: VNodeChild | ((args_0: InputControlSlot) => VNode<RendererNode, RendererElement, {
            [key: string]: any;
        }> | VNode<RendererNode, RendererElement, {
            [key: string]: any;
        }>[]);
        default?: VNodeChild | ((args_0: InputControlDefaultSlot) => VNode<RendererNode, RendererElement, {
            [key: string]: any;
        }> | VNode<RendererNode, RendererElement, {
            [key: string]: any;
        }>[]);
        suffix?: VNodeChild | ((args_0: InputControlSlot) => VNode<RendererNode, RendererElement, {
            [key: string]: any;
        }> | VNode<RendererNode, RendererElement, {
            [key: string]: any;
        }>[]);
        'append-inner'?: VNodeChild | ((args_0: InputControlSlot) => VNode<RendererNode, RendererElement, {
            [key: string]: any;
        }> | VNode<RendererNode, RendererElement, {
            [key: string]: any;
        }>[]);
        clear?: VNodeChild | ((args_0: InputControlSlot) => VNode<RendererNode, RendererElement, {
            [key: string]: any;
        }> | VNode<RendererNode, RendererElement, {
            [key: string]: any;
        }>[]);
    };
    'v-slots': new () => {
        'prepend-inner'?: false | ((args_0: InputControlSlot) => VNode<RendererNode, RendererElement, {
            [key: string]: any;
        }> | VNode<RendererNode, RendererElement, {
            [key: string]: any;
        }>[]) | undefined;
        prefix?: false | ((args_0: InputControlSlot) => VNode<RendererNode, RendererElement, {
            [key: string]: any;
        }> | VNode<RendererNode, RendererElement, {
            [key: string]: any;
        }>[]) | undefined;
        default?: false | ((args_0: InputControlDefaultSlot) => VNode<RendererNode, RendererElement, {
            [key: string]: any;
        }> | VNode<RendererNode, RendererElement, {
            [key: string]: any;
        }>[]) | undefined;
        suffix?: false | ((args_0: InputControlSlot) => VNode<RendererNode, RendererElement, {
            [key: string]: any;
        }> | VNode<RendererNode, RendererElement, {
            [key: string]: any;
        }>[]) | undefined;
        'append-inner'?: false | ((args_0: InputControlSlot) => VNode<RendererNode, RendererElement, {
            [key: string]: any;
        }> | VNode<RendererNode, RendererElement, {
            [key: string]: any;
        }>[]) | undefined;
        clear?: false | ((args_0: InputControlSlot) => VNode<RendererNode, RendererElement, {
            [key: string]: any;
        }> | VNode<RendererNode, RendererElement, {
            [key: string]: any;
        }>[]) | undefined;
    };
}>> & {
    "onUpdate:modelValue"?: ((_modelValue: any) => any) | undefined;
    "onClick:clear"?: ((_event: MouseEvent) => any) | undefined;
    "onClick:prepend-inner"?: ((_event: MouseEvent) => any) | undefined;
    "onClick:prefix"?: ((_event: MouseEvent) => any) | undefined;
    "onClick:suffix"?: ((_event: MouseEvent) => any) | undefined;
    "onClick:append-inner"?: ((_event: MouseEvent) => any) | undefined;
    "onClick:control"?: ((_event: MouseEvent) => any) | undefined;
    "onUpdate:active"?: ((_active: boolean) => any) | undefined;
}, {
    inputRef: Ref<HTMLInputElement | undefined>;
    controlRef: Ref<HTMLElement | undefined>;
}, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
    'click:clear': (_event: MouseEvent) => boolean;
    'click:prepend-inner': (_event: MouseEvent) => boolean;
    'click:prefix': (_event: MouseEvent) => boolean;
    'click:suffix': (_event: MouseEvent) => boolean;
    'click:append-inner': (_event: MouseEvent) => boolean;
    'click:control': (_event: MouseEvent) => boolean;
    'update:active': (_active: boolean) => boolean;
    'update:modelValue': (_modelValue: any) => boolean;
}, string, {
    disabled: boolean;
    variant: NonNullable<"text" | "contained" | "outlined" | "plain" | "contained-text" | "contained-outlined">;
    shape: NonNullable<"tile" | "rounded-sm" | "rounded" | "rounded-lg" | "pill" | "circle">;
    active: boolean;
    clearable: boolean;
    clearIcon: string | Record<string, any>;
    dirty: boolean;
}, {}, string> & VNodeProps & AllowedComponentProps & ComponentCustomProps & (new () => {
    $slots: InputControlSlots;
});
export declare function filterInputControlProps(attrs: Record<string, unknown>): [yes: Partial<Pick<Record<string, unknown>, string>>, no: Omit<Record<string, unknown>, string>];
export declare type InputControl = InstanceType<typeof InputControl>;
//# sourceMappingURL=input-control.d.ts.map