import type { ButtonHTMLAttributes } from 'vue'; import type { IconName } from '../Icon'; import type { SharedButtonAppearance, SharedButtonSize, SharedButtonType, SharedButtonVariant } from '../shared/button/types'; export type IconButtonProps = { label: string; appearance?: SharedButtonAppearance; variant?: SharedButtonVariant; size?: SharedButtonSize; type?: SharedButtonType; icon?: IconName; /** * Accessible name for the button (screen readers). When set, the hover tooltip * still uses `label` but is not linked as aria-describedby so SR does not repeat it. */ ariaLabel?: string; /** Icon properties */ /** Tooltip properties */ hideTooltip?: boolean; tooltipPosition?: string; tooltipVariant?: string; tooltipZindex?: number; tooltipOffset?: number[]; tooltipWithinTarget?: boolean; /** Button properties */ isDisabled?: boolean; isLoading?: boolean; isRounded?: boolean; isPressed?: boolean | undefined; descriptionTextId?: string; } & /* @vue-ignore */ ButtonHTMLAttributes; type __VLS_Slots = { default: () => unknown; pin: (props: {}) => unknown; }; declare const __VLS_base: import("vue").DefineComponent any; }, string, import("vue").PublicProps, Readonly & Readonly<{ onClick?: ((event: MouseEvent) => any) | undefined; }>, { size: SharedButtonSize; tooltipVariant: string; tooltipPosition: string; type: SharedButtonType; variant: SharedButtonVariant; appearance: SharedButtonAppearance; icon: IconName; tooltipZindex: number; tooltipWithinTarget: boolean; isDisabled: boolean; isLoading: boolean; isRounded: boolean; isPressed: boolean; descriptionTextId: string; }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>; declare const __VLS_export: __VLS_WithSlots; declare const _default: typeof __VLS_export; export default _default; type __VLS_WithSlots = T & { new (): { $slots: S; }; };