import React, { type Ref, type JSX } from 'react';
import { type ButtonVariants } from './button.css.js';
type ButtonSlot = 'loadingIndicator' | 'spinnerIcon' | 'content' | 'iconLeft' | 'iconRight';
type SlotClasses<T extends string> = Partial<Record<T, string>>;
type Props = Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'size'> & {
    variant?: NonNullable<ButtonVariants>['variant'];
    size?: NonNullable<ButtonVariants>['size'];
    width?: NonNullable<ButtonVariants>['width'];
    isLoading?: boolean;
    loadingLabel?: React.ReactNode;
    leftIcon?: React.ReactNode;
    rightIcon?: React.ReactNode;
    ref?: Ref<HTMLButtonElement>;
    classes?: SlotClasses<ButtonSlot>;
};
export declare const Button: (props: Props) => JSX.Element;
export {};
//# sourceMappingURL=Button.d.ts.map