import type { AllowedComponentProps } from 'vue';
import type { ComponentCustomProps } from 'vue';
import type { ComponentOptionsMixin } from 'vue';
import type { DefineComponent } from 'vue';
import type { ExtractPropTypes } from 'vue';
import type { InputHTMLAttributes } from 'vue';
import type { Plugin as Plugin_2 } from 'vue';
import type { PropType } from 'vue';
import type { VNodeProps } from 'vue';

export declare const AButton: DefineComponent<{
    variant: {
        type: PropType<"primary" | "secondary" | "danger" | "warning" | "info" | "success">;
        default: string;
        validator(value: string): boolean;
    };
    size: {
        type: (StringConstructor | NumberConstructor)[];
        default: number;
        validator(v: string | number): boolean;
    };
    loading: {
        type: BooleanConstructor;
        default: boolean;
    };
    outlined: {
        type: BooleanConstructor;
        default: boolean;
    };
    raised: {
        type: BooleanConstructor;
        default: boolean;
    };
    rounded: {
        type: BooleanConstructor;
        default: boolean;
    };
    flat: {
        type: BooleanConstructor;
        default: boolean;
    };
    text: {
        type: BooleanConstructor;
        default: boolean;
    };
    icon: {
        type: BooleanConstructor;
        default: boolean;
    };
    block: {
        type: BooleanConstructor;
        default: boolean;
    };
    loaderClass: {
        type: StringConstructor;
        default: string;
    };
}, {}, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly<ExtractPropTypes<{
    variant: {
        type: PropType<"primary" | "secondary" | "danger" | "warning" | "info" | "success">;
        default: string;
        validator(value: string): boolean;
    };
    size: {
        type: (StringConstructor | NumberConstructor)[];
        default: number;
        validator(v: string | number): boolean;
    };
    loading: {
        type: BooleanConstructor;
        default: boolean;
    };
    outlined: {
        type: BooleanConstructor;
        default: boolean;
    };
    raised: {
        type: BooleanConstructor;
        default: boolean;
    };
    rounded: {
        type: BooleanConstructor;
        default: boolean;
    };
    flat: {
        type: BooleanConstructor;
        default: boolean;
    };
    text: {
        type: BooleanConstructor;
        default: boolean;
    };
    icon: {
        type: BooleanConstructor;
        default: boolean;
    };
    block: {
        type: BooleanConstructor;
        default: boolean;
    };
    loaderClass: {
        type: StringConstructor;
        default: string;
    };
}>>, {
    variant: "primary" | "secondary" | "danger" | "warning" | "info" | "success";
    size: string | number;
    loading: boolean;
    outlined: boolean;
    raised: boolean;
    rounded: boolean;
    flat: boolean;
    text: boolean;
    icon: boolean;
    block: boolean;
    loaderClass: string;
}, {}>;

export declare const AButtonGroup: DefineComponent<{
    size: {
        type: (StringConstructor | NumberConstructor)[];
        default: number;
        validator(v: string | number): boolean;
    };
    raised: {
        type: BooleanConstructor;
        default: boolean;
    };
    rounded: {
        type: BooleanConstructor;
        default: boolean;
    };
    flat: {
        type: BooleanConstructor;
        default: boolean;
    };
}, {}, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly<ExtractPropTypes<{
    size: {
        type: (StringConstructor | NumberConstructor)[];
        default: number;
        validator(v: string | number): boolean;
    };
    raised: {
        type: BooleanConstructor;
        default: boolean;
    };
    rounded: {
        type: BooleanConstructor;
        default: boolean;
    };
    flat: {
        type: BooleanConstructor;
        default: boolean;
    };
}>>, {
    size: string | number;
    raised: boolean;
    rounded: boolean;
    flat: boolean;
}, {}>;

export declare const ACheckbox: DefineComponent<{
    modelValue: PropType<ModelValue>;
    value: {
        type: (SymbolConstructor | StringConstructor | NumberConstructor | BooleanConstructor | ObjectConstructor | DateConstructor | ArrayConstructor | FunctionConstructor)[];
    };
    size: {
        type: NumberConstructor;
        default: number;
    };
    label: {
        type: StringConstructor;
    };
    variant: {
        type: StringConstructor;
        default: string;
    };
    outlined: {
        type: BooleanConstructor;
        default: boolean;
    };
    rounded: {
        type: BooleanConstructor;
        default: boolean;
    };
    disabled: BooleanConstructor;
}, {}, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, ("update:modelValue" | "click" | "change")[], "update:modelValue" | "click" | "change", VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly<ExtractPropTypes<{
    modelValue: PropType<ModelValue>;
    value: {
        type: (SymbolConstructor | StringConstructor | NumberConstructor | BooleanConstructor | ObjectConstructor | DateConstructor | ArrayConstructor | FunctionConstructor)[];
    };
    size: {
        type: NumberConstructor;
        default: number;
    };
    label: {
        type: StringConstructor;
    };
    variant: {
        type: StringConstructor;
        default: string;
    };
    outlined: {
        type: BooleanConstructor;
        default: boolean;
    };
    rounded: {
        type: BooleanConstructor;
        default: boolean;
    };
    disabled: BooleanConstructor;
}>> & {
    onChange?: (...args: any[]) => any;
    onClick?: (...args: any[]) => any;
    "onUpdate:modelValue"?: (...args: any[]) => any;
}, {
    variant: string;
    size: number;
    outlined: boolean;
    rounded: boolean;
    disabled: boolean;
}, {}>;

/***
 * Props: open, title, width, closeOnOutsideClick, hideHeader
 * Slots: header, footer
 */
export declare const ACollapse: DefineComponent<{
    open: {
        type: BooleanConstructor;
        default: boolean;
    };
}, {}, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly<ExtractPropTypes<{
    open: {
        type: BooleanConstructor;
        default: boolean;
    };
}>>, {
    open: boolean;
}, {}>;

export declare const ADialog: DefineComponent<{
    modelValue: {
        type: BooleanConstructor;
        default: boolean;
    };
    title: {
        type: StringConstructor;
        default: string;
    };
    width: {
        type: StringConstructor;
        default: string;
    };
    closeOnOutsideClick: {
        type: BooleanConstructor;
        default: boolean;
    };
    hideHeader: {
        type: BooleanConstructor;
        default: boolean;
    };
}, {}, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, "update:modelValue"[], "update:modelValue", VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly<ExtractPropTypes<{
    modelValue: {
        type: BooleanConstructor;
        default: boolean;
    };
    title: {
        type: StringConstructor;
        default: string;
    };
    width: {
        type: StringConstructor;
        default: string;
    };
    closeOnOutsideClick: {
        type: BooleanConstructor;
        default: boolean;
    };
    hideHeader: {
        type: BooleanConstructor;
        default: boolean;
    };
}>> & {
    "onUpdate:modelValue"?: (...args: any[]) => any;
}, {
    modelValue: boolean;
    title: string;
    width: string;
    closeOnOutsideClick: boolean;
    hideHeader: boolean;
}, {}>;

export declare const AInput: DefineComponent<{
    type: {
        type: PropType<string>;
        default: string;
        validator(value: string): boolean;
    };
    floatingLabel: {
        type: StringConstructor;
        default: string;
    };
    modelValue: {
        type: (StringConstructor | NumberConstructor)[];
        default: string;
    };
    size: {
        type: (StringConstructor | NumberConstructor)[];
        default: number;
        validator(v: string | number): boolean;
    };
    variant: {
        type: PropType<"primary" | "secondary" | "danger" | "warning" | "info" | "success">;
        default: string;
        validator(value: string): boolean;
    };
    clearable: {
        type: BooleanConstructor;
        default: boolean;
    };
    placeholder: {
        type: StringConstructor;
        default: string;
    };
    disabled: {
        type: BooleanConstructor;
        default: boolean;
    };
    name: {
        type: StringConstructor;
        default: () => string;
    };
    class: {
        type: StringConstructor;
        default: string;
    };
}, {}, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, "update:modelValue"[], "update:modelValue", VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly<ExtractPropTypes<{
    type: {
        type: PropType<string>;
        default: string;
        validator(value: string): boolean;
    };
    floatingLabel: {
        type: StringConstructor;
        default: string;
    };
    modelValue: {
        type: (StringConstructor | NumberConstructor)[];
        default: string;
    };
    size: {
        type: (StringConstructor | NumberConstructor)[];
        default: number;
        validator(v: string | number): boolean;
    };
    variant: {
        type: PropType<"primary" | "secondary" | "danger" | "warning" | "info" | "success">;
        default: string;
        validator(value: string): boolean;
    };
    clearable: {
        type: BooleanConstructor;
        default: boolean;
    };
    placeholder: {
        type: StringConstructor;
        default: string;
    };
    disabled: {
        type: BooleanConstructor;
        default: boolean;
    };
    name: {
        type: StringConstructor;
        default: () => string;
    };
    class: {
        type: StringConstructor;
        default: string;
    };
}>> & {
    "onUpdate:modelValue"?: (...args: any[]) => any;
}, {
    variant: "primary" | "secondary" | "danger" | "warning" | "info" | "success";
    size: string | number;
    modelValue: string | number;
    disabled: boolean;
    type: string;
    floatingLabel: string;
    clearable: boolean;
    placeholder: string;
    name: string;
    class: string;
}, {}>;

export declare const AInputFile: DefineComponent<{
    variant: {
        type: PropType<"primary" | "secondary" | "danger" | "warning" | "info" | "success">;
        default: string;
        validator(value: string): boolean;
    };
    size: {
        type: (StringConstructor | NumberConstructor)[];
        default: number;
        validator(v: string | number): boolean;
    };
    outlined: {
        type: BooleanConstructor;
        default: boolean;
    };
    raised: {
        type: BooleanConstructor;
        default: boolean;
    };
    rounded: {
        type: BooleanConstructor;
        default: boolean;
    };
    accept: {
        type: StringConstructor;
        default: string;
    };
    width: {
        type: StringConstructor;
        default: string;
    };
    aspectRatio: {
        type: StringConstructor;
        default: string;
    };
    name: {
        type: StringConstructor;
        default: () => string;
    };
    multiple: {
        type: BooleanConstructor;
        default: boolean;
    };
}, {}, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, ("change" | "drop")[], "change" | "drop", VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly<ExtractPropTypes<{
    variant: {
        type: PropType<"primary" | "secondary" | "danger" | "warning" | "info" | "success">;
        default: string;
        validator(value: string): boolean;
    };
    size: {
        type: (StringConstructor | NumberConstructor)[];
        default: number;
        validator(v: string | number): boolean;
    };
    outlined: {
        type: BooleanConstructor;
        default: boolean;
    };
    raised: {
        type: BooleanConstructor;
        default: boolean;
    };
    rounded: {
        type: BooleanConstructor;
        default: boolean;
    };
    accept: {
        type: StringConstructor;
        default: string;
    };
    width: {
        type: StringConstructor;
        default: string;
    };
    aspectRatio: {
        type: StringConstructor;
        default: string;
    };
    name: {
        type: StringConstructor;
        default: () => string;
    };
    multiple: {
        type: BooleanConstructor;
        default: boolean;
    };
}>> & {
    onDrop?: (...args: any[]) => any;
    onChange?: (...args: any[]) => any;
}, {
    variant: "primary" | "secondary" | "danger" | "warning" | "info" | "success";
    size: string | number;
    outlined: boolean;
    raised: boolean;
    rounded: boolean;
    width: string;
    name: string;
    accept: string;
    aspectRatio: string;
    multiple: boolean;
}, {}>;

export declare const ARadio: DefineComponent<{
    name: {
        type: StringConstructor;
        required: true;
    };
    modelValue: {
        type: StringConstructor;
        required: true;
    };
    label: {
        type: StringConstructor;
    };
    variant: {
        type: StringConstructor;
        default: string;
    };
    value: {
        type: StringConstructor;
        required: true;
    };
    size: {
        type: NumberConstructor;
        default: number;
    };
    disabled: BooleanConstructor;
    pt: {
        type: PropType<InputHTMLAttributes>;
        default: () => {};
    };
}, {}, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, ("update:modelValue" | "click" | "change")[], "update:modelValue" | "click" | "change", VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly<ExtractPropTypes<{
    name: {
        type: StringConstructor;
        required: true;
    };
    modelValue: {
        type: StringConstructor;
        required: true;
    };
    label: {
        type: StringConstructor;
    };
    variant: {
        type: StringConstructor;
        default: string;
    };
    value: {
        type: StringConstructor;
        required: true;
    };
    size: {
        type: NumberConstructor;
        default: number;
    };
    disabled: BooleanConstructor;
    pt: {
        type: PropType<InputHTMLAttributes>;
        default: () => {};
    };
}>> & {
    onChange?: (...args: any[]) => any;
    onClick?: (...args: any[]) => any;
    "onUpdate:modelValue"?: (...args: any[]) => any;
}, {
    variant: string;
    size: number;
    disabled: boolean;
    pt: {};
}, {}>;

export declare const ASelect: DefineComponent<{
    variant: {
        type: PropType<"primary" | "secondary" | "danger" | "warning" | "info" | "success">;
        default: string;
        validator(value: string): boolean;
    };
    clearable: {
        type: BooleanConstructor;
        default: boolean;
    };
    labelField: {
        type: (StringConstructor | FunctionConstructor)[];
        default: string;
    };
    valueField: {
        type: (StringConstructor | FunctionConstructor)[];
        default: string;
    };
    showSearchField: {
        type: (BooleanConstructor | FunctionConstructor)[];
        default: boolean;
    };
    floatingLabel: {
        type: StringConstructor;
        default: string;
    };
    modelValue: {
        type: any;
        default: string;
    };
    size: {
        type: (StringConstructor | NumberConstructor)[];
        default: number;
        validator(v: string | number): boolean;
    };
    isDisabled: {
        type: (BooleanConstructor | FunctionConstructor)[];
        default: boolean;
    };
    width: {
        type: StringConstructor;
        default: string;
    };
    options: {
        type: {
            (arrayLength: number): any[];
            (...items: any[]): any[];
            new (arrayLength: number): any[];
            new (...items: any[]): any[];
            isArray(arg: any): arg is any[];
            readonly prototype: any[];
            from<T>(arrayLike: ArrayLike<T>): T[];
            from<T_1, U>(arrayLike: ArrayLike<T_1>, mapfn: (v: T_1, k: number) => U, thisArg?: any): U[];
            from<T_2>(iterable: Iterable<T_2> | ArrayLike<T_2>): T_2[];
            from<T_3, U_1>(iterable: Iterable<T_3> | ArrayLike<T_3>, mapfn: (v: T_3, k: number) => U_1, thisArg?: any): U_1[];
            of<T_4>(...items: T_4[]): T_4[];
            readonly [Symbol.species]: ArrayConstructor;
        };
        default: any[];
    };
    placeholder: {
        type: StringConstructor;
        default: string;
    };
    autofocus: {
        type: BooleanConstructor;
        default: boolean;
    };
    scrollHeight: {
        type: (StringConstructor | NumberConstructor)[];
        default: number;
    };
    grouped: {
        type: BooleanConstructor;
        default: boolean;
    };
    groupedLabelField: {
        type: StringConstructor;
        default: string;
    };
    groupedOptionsField: {
        type: StringConstructor;
        default: string;
    };
    groupByField: {
        type: StringConstructor;
        default: string;
    };
    loading: {
        type: BooleanConstructor;
        default: boolean;
    };
}, {}, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, ("update:modelValue" | "aChange" | "blur" | "focus")[], "update:modelValue" | "aChange" | "blur" | "focus", VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly<ExtractPropTypes<{
    variant: {
        type: PropType<"primary" | "secondary" | "danger" | "warning" | "info" | "success">;
        default: string;
        validator(value: string): boolean;
    };
    clearable: {
        type: BooleanConstructor;
        default: boolean;
    };
    labelField: {
        type: (StringConstructor | FunctionConstructor)[];
        default: string;
    };
    valueField: {
        type: (StringConstructor | FunctionConstructor)[];
        default: string;
    };
    showSearchField: {
        type: (BooleanConstructor | FunctionConstructor)[];
        default: boolean;
    };
    floatingLabel: {
        type: StringConstructor;
        default: string;
    };
    modelValue: {
        type: any;
        default: string;
    };
    size: {
        type: (StringConstructor | NumberConstructor)[];
        default: number;
        validator(v: string | number): boolean;
    };
    isDisabled: {
        type: (BooleanConstructor | FunctionConstructor)[];
        default: boolean;
    };
    width: {
        type: StringConstructor;
        default: string;
    };
    options: {
        type: {
            (arrayLength: number): any[];
            (...items: any[]): any[];
            new (arrayLength: number): any[];
            new (...items: any[]): any[];
            isArray(arg: any): arg is any[];
            readonly prototype: any[];
            from<T>(arrayLike: ArrayLike<T>): T[];
            from<T_1, U>(arrayLike: ArrayLike<T_1>, mapfn: (v: T_1, k: number) => U, thisArg?: any): U[];
            from<T_2>(iterable: Iterable<T_2> | ArrayLike<T_2>): T_2[];
            from<T_3, U_1>(iterable: Iterable<T_3> | ArrayLike<T_3>, mapfn: (v: T_3, k: number) => U_1, thisArg?: any): U_1[];
            of<T_4>(...items: T_4[]): T_4[];
            readonly [Symbol.species]: ArrayConstructor;
        };
        default: any[];
    };
    placeholder: {
        type: StringConstructor;
        default: string;
    };
    autofocus: {
        type: BooleanConstructor;
        default: boolean;
    };
    scrollHeight: {
        type: (StringConstructor | NumberConstructor)[];
        default: number;
    };
    grouped: {
        type: BooleanConstructor;
        default: boolean;
    };
    groupedLabelField: {
        type: StringConstructor;
        default: string;
    };
    groupedOptionsField: {
        type: StringConstructor;
        default: string;
    };
    groupByField: {
        type: StringConstructor;
        default: string;
    };
    loading: {
        type: BooleanConstructor;
        default: boolean;
    };
}>> & {
    onFocus?: (...args: any[]) => any;
    onBlur?: (...args: any[]) => any;
    "onUpdate:modelValue"?: (...args: any[]) => any;
    onAChange?: (...args: any[]) => any;
}, {
    variant: "primary" | "secondary" | "danger" | "warning" | "info" | "success";
    size: string | number;
    loading: boolean;
    modelValue: any;
    width: string;
    floatingLabel: string;
    clearable: boolean;
    placeholder: string;
    labelField: string | Function;
    valueField: string | Function;
    showSearchField: boolean | Function;
    isDisabled: boolean | Function;
    options: any[];
    autofocus: boolean;
    scrollHeight: string | number;
    grouped: boolean;
    groupedLabelField: string;
    groupedOptionsField: string;
    groupByField: string;
}, {}>;

export declare const ASpinner: DefineComponent<{
    size: {
        type: (StringConstructor | NumberConstructor)[];
        default: number;
        validator(v: string | number): boolean;
    };
    variant: {
        type: PropType<"primary" | "secondary" | "danger" | "warning" | "info" | "success">;
        default: string;
        validator(value: string): boolean;
    };
}, {}, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, any[], any, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly<ExtractPropTypes<{
    size: {
        type: (StringConstructor | NumberConstructor)[];
        default: number;
        validator(v: string | number): boolean;
    };
    variant: {
        type: PropType<"primary" | "secondary" | "danger" | "warning" | "info" | "success">;
        default: string;
        validator(value: string): boolean;
    };
}>> & {
    [x: `on${Capitalize<any>}`]: (...args: any[]) => any;
}, {
    variant: "primary" | "secondary" | "danger" | "warning" | "info" | "success";
    size: string | number;
}, {}>;

export declare const ASwitch: DefineComponent<{
    modelValue: {
        type: BooleanConstructor;
        default: boolean;
    };
    onText: {
        type: StringConstructor;
        default: string;
    };
    offText: {
        type: StringConstructor;
        default: string;
    };
    onVariation: {
        type: StringConstructor;
        default: string;
    };
    offVariation: {
        type: StringConstructor;
        default: string;
    };
    size: {
        type: NumberConstructor;
        default: number;
    };
    disabled: BooleanConstructor;
}, {}, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, "update:modelValue"[], "update:modelValue", VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly<ExtractPropTypes<{
    modelValue: {
        type: BooleanConstructor;
        default: boolean;
    };
    onText: {
        type: StringConstructor;
        default: string;
    };
    offText: {
        type: StringConstructor;
        default: string;
    };
    onVariation: {
        type: StringConstructor;
        default: string;
    };
    offVariation: {
        type: StringConstructor;
        default: string;
    };
    size: {
        type: NumberConstructor;
        default: number;
    };
    disabled: BooleanConstructor;
}>> & {
    "onUpdate:modelValue"?: (...args: any[]) => any;
}, {
    size: number;
    modelValue: boolean;
    disabled: boolean;
    onText: string;
    offText: string;
    onVariation: string;
    offVariation: string;
}, {}>;

export declare const AToasts: DefineComponent<{
    position: {
        type: StringConstructor;
        default: string;
    };
    group: {
        type: StringConstructor;
        default: string;
    };
}, {}, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly<ExtractPropTypes<{
    position: {
        type: StringConstructor;
        default: string;
    };
    group: {
        type: StringConstructor;
        default: string;
    };
}>>, {
    position: string;
    group: string;
}, {}>;

declare const AyoVue: Plugin_2;
export { AyoVue }
export default AyoVue;

declare type ModelValue = boolean | any[];

declare interface ToastItem {
    type: string;
    summary?: string;
    detail?: string;
    duration?: number;
    group?: string;
    $when?: number;
}

export declare const useToast: () => {
    toasts: Set<ToastItem>;
    showToast: (toastItem: ToastItem) => void;
    removeToast: (toast: ToastItem) => void;
};

export declare const vRipple: {
    mounted(el: HTMLButtonElement): void;
    beforeUnmount(el: HTMLButtonElement): void;
};

export declare const vTooltip: {
    mounted: (el: HTMLElement, binding: any) => void;
    beforeMount(el: HTMLElement): void;
    unmounted(el: HTMLElement): void;
    updated(el: HTMLElement): void;
};

export { }
declare module '@vue/runtime-core' {
  export interface GlobalComponents {
      AButton: typeof AButton,
      AButtonGroup: typeof AButtonGroup,
      ACheckbox: typeof ACheckbox,
      ACollapse: typeof ACollapse,
      ADialog: typeof ADialog,
      AInput: typeof AInput,
      AInputFile: typeof AInputFile,
      ARadio: typeof ARadio,
      ASelect: typeof ASelect,
      ASpinner: typeof ASpinner,
      ASwitch: typeof ASwitch,
      AToasts: typeof AToasts
  }
}