import type { AnchorHTMLAttributes, PropType } from 'vue';
import type { ButtonVariant, ButtonOutline } from '#components';
import type { Exposed } from '#composables';
import type { Theme, Size, Radius, Spacing } from '#utilities';
import type { RouteLocationRaw, RouterLinkProps } from 'vue-router';
import type { NuxtLinkProps } from 'nuxt/app';
type LinkOptions = Omit | Omit;
declare const _default: typeof __VLS_export;
export default _default;
declare const __VLS_export: __VLS_WithSlots;
label: StringConstructor;
variant: {
type: PropType;
default: () => ButtonVariant;
validator: (v: string) => boolean;
};
mask: {
type: PropType<"ghost" | "form-field">;
default: (props: {
variant: ButtonVariant;
}) => "form-field" | "ghost" | undefined;
validator: (v: string) => boolean;
};
outline: {
type: PropType;
default: (props: {
variant: ButtonVariant;
}) => ButtonOutline | undefined;
validator: (v: boolean | string) => boolean;
};
underline: {
type: BooleanConstructor;
default: (props: {
variant: ButtonVariant;
}) => boolean | undefined;
};
fill: {
type: BooleanConstructor;
default: (props: {
variant: ButtonVariant;
}) => boolean | undefined;
};
icon: StringConstructor;
iconLeft: StringConstructor;
iconRight: StringConstructor;
squared: {
type: BooleanConstructor;
default: (props: Record) => boolean;
};
disabled: BooleanConstructor;
loading: BooleanConstructor;
linkTo: PropType;
linkOptions: PropType;
linkUnderline: BooleanConstructor;
descendant: BooleanConstructor;
theme: {
type: PropType;
default: (props: {
descendant?: boolean;
}) => "brand" | "user" | "ok" | "info" | "warn" | "danger" | "neutral" | undefined;
validator: /**
* @template { string } T
* @overload
* @param { T } value
* @returns { T extends ThemeAlias ? true : false }
*/
(value: string) => false;
};
interactionTheme: {
type: PropType;
validator: /**
* @template { string } T
* @overload
* @param { T } value
* @returns { T extends ThemeAlias ? true : false }
*/
(value: string) => false;
};
size: {
type: PropType;
default: (props: {
descendant?: boolean;
}) => Size | undefined;
validator: import("#utilities").IsValidSize;
};
radius: {
type: PropType;
default: (props: {
descendant?: boolean;
}) => Radius | undefined;
validator: import("#utilities").IsValidRadius;
};
spacing: {
type: PropType;
default: (props: {
descendant?: boolean;
}) => Spacing | undefined;
validator: import("#utilities").IsValidSpacing;
};
}>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly;
label: StringConstructor;
variant: {
type: PropType;
default: () => ButtonVariant;
validator: (v: string) => boolean;
};
mask: {
type: PropType<"ghost" | "form-field">;
default: (props: {
variant: ButtonVariant;
}) => "form-field" | "ghost" | undefined;
validator: (v: string) => boolean;
};
outline: {
type: PropType;
default: (props: {
variant: ButtonVariant;
}) => ButtonOutline | undefined;
validator: (v: boolean | string) => boolean;
};
underline: {
type: BooleanConstructor;
default: (props: {
variant: ButtonVariant;
}) => boolean | undefined;
};
fill: {
type: BooleanConstructor;
default: (props: {
variant: ButtonVariant;
}) => boolean | undefined;
};
icon: StringConstructor;
iconLeft: StringConstructor;
iconRight: StringConstructor;
squared: {
type: BooleanConstructor;
default: (props: Record) => boolean;
};
disabled: BooleanConstructor;
loading: BooleanConstructor;
linkTo: PropType;
linkOptions: PropType;
linkUnderline: BooleanConstructor;
descendant: BooleanConstructor;
theme: {
type: PropType;
default: (props: {
descendant?: boolean;
}) => "brand" | "user" | "ok" | "info" | "warn" | "danger" | "neutral" | undefined;
validator: /**
* @template { string } T
* @overload
* @param { T } value
* @returns { T extends ThemeAlias ? true : false }
*/
(value: string) => false;
};
interactionTheme: {
type: PropType;
validator: /**
* @template { string } T
* @overload
* @param { T } value
* @returns { T extends ThemeAlias ? true : false }
*/
(value: string) => false;
};
size: {
type: PropType;
default: (props: {
descendant?: boolean;
}) => Size | undefined;
validator: import("#utilities").IsValidSize;
};
radius: {
type: PropType;
default: (props: {
descendant?: boolean;
}) => Radius | undefined;
validator: import("#utilities").IsValidRadius;
};
spacing: {
type: PropType;
default: (props: {
descendant?: boolean;
}) => Spacing | undefined;
validator: import("#utilities").IsValidSpacing;
};
}>> & Readonly<{}>, {
fill: boolean;
size: Size;
disabled: boolean;
mask: "form-field" | "ghost";
theme: "brand" | "user" | "ok" | "info" | "warn" | "danger" | "neutral";
radius: Radius;
spacing: Spacing;
loading: boolean;
linkUnderline: boolean;
descendant: boolean;
variant: ButtonVariant;
outline: ButtonOutline;
underline: boolean;
squared: boolean;
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>, {
default?: (props: {}) => any;
} & {
aside?: (props: {}) => any;
}>;
type __VLS_WithSlots = T & {
new (): {
$slots: S;
};
};
//# sourceMappingURL=Button.vue.d.ts.map