import { ButtonColor, ButtonElementType, ButtonSize, ButtonType } from '../../types'; import { TIcon } from '../../types/icons.types'; interface IProps { /** @description Whether the button is disabled and cannot be clicked */ disabled?: boolean; /** @description Whether the button is in loading state with a spinner */ loading?: boolean; /** @description Whether the button should take full width of its container */ block?: boolean; /** @description Data attribute for testing purposes */ dataTestName?: string; /** * @description Icon shown inside the loader overlay. Accepts a class * string (legacy `vc-icon-*`) or a Vue component (e.g. a Lucide icon * from `@lucide/vue`). */ loaderIcon?: TIcon; /** @description Size variant of the button */ size?: ButtonSize; /** @description Visual style variant of the button */ type?: ButtonType; /** * @description Icon shown before the button text. Accepts a class * string (legacy `vc-icon-*`) or a Vue component (e.g. a Lucide icon * from `@lucide/vue`). For full control, use the `#icon` slot instead. */ icon?: TIcon; /** @description Color theme of the button */ color?: ButtonColor; /** @description Native HTML button type attribute */ buttonType?: ButtonElementType; /** @description Round property, determine whether it's a round button */ round?: boolean; } declare const _default: __VLS_WithTemplateSlots, { block: boolean; buttonType: string; color: string; dataTestName: string; disabled: boolean; icon: string; loading: boolean; loaderIcon: string; size: string; type: string; }>>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, { click: (pl: MouseEvent) => void; }, string, import("vue").PublicProps, Readonly, { block: boolean; buttonType: string; color: string; dataTestName: string; disabled: boolean; icon: string; loading: boolean; loaderIcon: string; size: string; type: string; }>>> & Readonly<{ onClick?: ((pl: MouseEvent) => any) | undefined; }>, { size: ButtonSize; icon: TIcon; color: "" | "success" | "warning" | "primary" | "secondary" | "destructive" | "active" | "primary-alternative"; type: ButtonType; loading: boolean; disabled: boolean; dataTestName: string; block: boolean; loaderIcon: TIcon; buttonType: ButtonElementType; }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>, { icon?(_: {}): any; default?(_: {}): any; loader?(_: {}): any; }>; export default _default; type __VLS_NonUndefinedable = T extends undefined ? never : T; type __VLS_TypePropsToRuntimeProps = { [K in keyof T]-?: {} extends Pick ? { type: import('vue').PropType<__VLS_NonUndefinedable>; } : { type: import('vue').PropType; required: true; }; }; type __VLS_WithDefaults = { [K in keyof Pick]: K extends keyof D ? __VLS_Prettify : P[K]; }; type __VLS_Prettify = { [K in keyof T]: T[K]; } & {}; type __VLS_WithTemplateSlots = T & { new (): { $slots: S; }; };