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