import React from 'react'; import { IconProps } from "./Icon"; type DataAttributeKey = `data-${string}`; interface HTMLAttributes extends React.HTMLAttributes { [dataAttribute: DataAttributeKey]: any; } export type ButtonAsButtonProps = { type?: 'button' | 'submit'; clickArea?: boolean; download?: never; disabled?: boolean; onClick?: (e: any) => void; href?: never; target?: never; rel?: never; }; export type ButtonAsAnchorProps = { type?: never; clickArea?: never; download?: boolean; disabled?: never; onClick?: never; href?: string; target?: string; rel?: string; }; export type ButtonTypes = { id?: string; children?: React.ReactNode; element?: 'button' | 'a'; tabIndex?: string; ariaLabel?: string; className?: string; appendClassName?: string; childClassName?: string; icon?: string; iconSize?: IconProps['size']; iconColor?: string; style?: React.CSSProperties; basic?: boolean; primary?: boolean; dataAttribute?: HTMLAttributes; }; export declare const Button: ({ type, element, className, appendClassName, childClassName, clickArea, tabIndex, ariaLabel, download, id, href, rel, onClick, disabled, target, children, style, basic, primary, icon, iconSize, iconColor, dataAttribute }: ButtonTypes & (ButtonAsButtonProps | ButtonAsAnchorProps)) => JSX.Element; export {};