import type { AriaAttributes, JSX, TargetedMouseEvent } from 'preact';
import type { IconName } from '../Icon/Icon';
type ButtonVariant = 'primary' | 'secondary' | 'tertiary' | 'critical' | 'link' | 'surface';
export interface ButtonProps {
    children: string | JSX.Element;
    disabled?: boolean;
    fullWidth?: boolean;
    icon?: IconName;
    loading?: boolean;
    onClick: (e: TargetedMouseEvent<HTMLButtonElement>) => void;
    variant?: ButtonVariant;
    testId?: string;
    type?: 'button' | 'submit' | 'reset';
}
export interface IconButtonProps {
    ariaLabel: AriaAttributes['aria-label'];
    disabled?: boolean;
    icon: IconName;
    loading?: boolean;
    onClick: (e: TargetedMouseEvent<HTMLButtonElement>) => void;
    circle?: boolean;
    variant?: ButtonVariant;
    testId?: string;
}
export {};
