import type { DefineComponent, ExtractPropTypes, ComponentOptionsMixin, PublicProps, ComponentProvideOptions, PropType as __PropType } from 'vue'; import type { IconifyIcon } from '@iconify/vue'; import { type GIconProps } from '../GIcon'; /** * Props interface for GButton component * Allows consumers to extend these props in wrapper components * @version 0.1.0 */ export interface GButtonProps { /** Router link destination (string path or route object) */ to?: string | object; /** Standard href for anchor links */ href?: string; /** Space separated list of variants (e.g., "default primary", "outline danger") */ variant?: string; /** Apply rounded styling to button */ rounded?: boolean; /** Text label for button content */ label?: string | null; /** Disable button interactions */ disabled?: boolean; /** Valid type variant names (default, outline, text, link, unstyled) */ typeVariants?: string[]; /** Valid color variant names (primary, secondary, accent, danger, warning, success, info) */ colorVariants?: string[]; /** Icon name or configuration for main icon */ icon?: IconifyIcon | string | null; /** Props to pass to icon component */ iconProps?: Partial; /** Icon for left position (name or config) */ iconLeft?: IconifyIcon | string | null; /** Props to pass to left icon */ iconLeftProps?: Partial; /** Icon for right position (name or config) */ iconRight?: IconifyIcon | string | null; /** Props to pass to right icon */ iconRightProps?: Partial; /** Auto-focus button on mount */ autoFocus?: boolean; } /** * @version 0.1.0 */ export type GButtonExposed = HTMLButtonElement | HTMLAnchorElement; declare const _sfc_main: DefineComponent; required: false; }; href: { type: __PropType; required: false; }; variant: { type: __PropType; required: false; default: string; }; rounded: { type: __PropType; required: false; default: boolean; }; label: { type: __PropType; required: false; default: null; }; disabled: { type: __PropType; required: false; }; typeVariants: { type: __PropType; required: false; default: () => string[]; }; colorVariants: { type: __PropType; required: false; default: () => string[]; }; icon: { type: __PropType; required: false; default: null; }; iconProps: { type: __PropType | undefined>; required: false; }; iconLeft: { type: __PropType; required: false; default: null; }; iconLeftProps: { type: __PropType | undefined>; required: false; }; iconRight: { type: __PropType; required: false; default: null; }; iconRightProps: { type: __PropType | undefined>; required: false; }; autoFocus: { type: __PropType; required: false; default: boolean; }; }>, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly; required: false; }; href: { type: __PropType; required: false; }; variant: { type: __PropType; required: false; default: string; }; rounded: { type: __PropType; required: false; default: boolean; }; label: { type: __PropType; required: false; default: null; }; disabled: { type: __PropType; required: false; }; typeVariants: { type: __PropType; required: false; default: () => string[]; }; colorVariants: { type: __PropType; required: false; default: () => string[]; }; icon: { type: __PropType; required: false; default: null; }; iconProps: { type: __PropType | undefined>; required: false; }; iconLeft: { type: __PropType; required: false; default: null; }; iconLeftProps: { type: __PropType | undefined>; required: false; }; iconRight: { type: __PropType; required: false; default: null; }; iconRightProps: { type: __PropType | undefined>; required: false; }; autoFocus: { type: __PropType; required: false; default: boolean; }; }>> & Readonly<{}>, { icon: string | IconifyIcon | null | undefined; label: string | null | undefined; variant: string | undefined; rounded: boolean | undefined; typeVariants: string[] | undefined; colorVariants: string[] | undefined; iconLeft: string | IconifyIcon | null | undefined; iconRight: string | IconifyIcon | null | undefined; autoFocus: boolean | undefined; }, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>; export default _sfc_main;