import { type VariantProps } from 'class-variance-authority';
import { RouteLocationRaw } from 'vue-router';
import { Icon } from '../../types';
declare const button: (props?: ({
    variant?: "default" | "destructive" | "link" | "outline" | "ghost" | null | undefined;
    size?: "sm" | "lg" | "default" | "icon" | null | undefined;
    icon?: boolean | null | undefined;
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
type ButtonProps = VariantProps<typeof button>;
type __VLS_Props = {
    variant?: ButtonProps['variant'];
    size?: ButtonProps['size'];
    solid?: boolean;
    solidAppend?: boolean;
    primary?: boolean;
    flat?: boolean;
    selected?: boolean;
    icon?: Icon;
    iconAppend?: Icon;
    dangerous?: boolean;
    to?: RouteLocationRaw;
    small?: boolean;
    disabled?: boolean;
    loading?: boolean;
};
declare var __VLS_12: {};
type __VLS_Slots = {} & {
    default?: (props: typeof __VLS_12) => any;
};
declare const __VLS_component: import("vue").DefineComponent<__VLS_Props, {
    el: import("vue").Ref<HTMLButtonElement | undefined, HTMLButtonElement | undefined>;
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
export default _default;
type __VLS_WithSlots<T, S> = T & {
    new (): {
        $slots: S;
    };
};
