import { ButtonProps, ButtonNativeType } from './button.js';
import { DefineComponent, Ref, ComputedRef, ComponentOptionsMixin, PublicProps, Component, ComponentProvideOptions } from 'vue';
import { ComponentSize } from '../../../xiaoye-primitives/index.js';
declare function __VLS_template(): {
    attrs: Partial<{}>;
    slots: Readonly<{
        default?: () => unknown;
        icon?: () => unknown;
        loading?: () => unknown;
        prefix?: () => unknown;
        suffix?: () => unknown;
    }> & {
        default?: () => unknown;
        icon?: () => unknown;
        loading?: () => unknown;
        prefix?: () => unknown;
        suffix?: () => unknown;
    };
    refs: {
        buttonRef: unknown;
    };
    rootEl: any;
};
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
declare const __VLS_component: DefineComponent<ButtonProps, {
    ref: Ref<HTMLElement | null, HTMLElement | null>;
    size: ComputedRef<ComponentSize>;
    type: ComputedRef<"primary" | "success" | "warning" | "danger" | "default">;
    disabled: ComputedRef<boolean | undefined>;
}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
    click: (event: MouseEvent) => any;
}, string, PublicProps, Readonly<ButtonProps> & Readonly<{
    onClick?: ((event: MouseEvent) => any) | undefined;
}>, {
    link: boolean;
    circle: boolean;
    text: boolean;
    disabled: boolean;
    block: boolean;
    tag: string | Component;
    loading: boolean;
    round: boolean;
    nativeType: ButtonNativeType;
    loadingIcon: string;
    plain: boolean;
    bg: boolean;
    autofocus: boolean;
}, {}, {}, {}, string, ComponentProvideOptions, false, {
    buttonRef: unknown;
}, any>;
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
export default _default;
type __VLS_WithTemplateSlots<T, S> = T & {
    new (): {
        $slots: S;
    };
};
