import { IButtonProps } from '@blueprintjs/core'; import React, { HTMLAttributes, MouseEvent } from 'react'; import { OptionalTooltip } from '@harnessio/design-system'; import { IconName, IconProps } from '@harnessio/icons'; import { StyledProps } from '@harnessio/design-system'; export declare enum ButtonVariation { PRIMARY = "variation-primary", SECONDARY = "variation-secondary", TERTIARY = "variation-tertiary", ICON = "variation-icon", LINK = "variation-link", AI = "variation-ai" } export declare enum ButtonSize { LARGE = "large", MEDIUM = "medium", SMALL = "small" } export interface ButtonProps extends Omit, HTMLAttributes, StyledProps, OptionalTooltip { /** Left icon */ icon?: IconName | React.ReactElement; /** Right icon */ rightIcon?: IconName; /** Optional Icon props */ iconProps?: Partial; withoutCurrentColor?: boolean; withoutBoxShadow?: boolean; /** onClick event handler */ onClick?: (event: MouseEvent) => Promise | void; /** Link href. If provided, Button rendered as Link */ href?: string; /** When true, ignore all styling (useful for special button and link which need custom styling) */ noStyling?: boolean; /** Link target attribute, must go with href */ target?: '_blank'; /** Link rel attribute, must go with href */ rel?: string; /** Component children */ children?: React.ReactNode; /** Make button round */ round?: boolean; variation?: ButtonVariation; size?: ButtonSize; } export interface LinkProps extends ButtonProps { active?: boolean; withoutHref?: boolean; } export declare function Button(props: ButtonProps): React.ReactElement; /** * @deprecated use Link from react-router-dom */ export declare function Link(props: LinkProps): React.ReactElement;