import { AnchorAttributes, ButtonAttributes } from '../../utils/types';
export declare type ButtonSizes = 'sm' | 'md' | 'lg';
export declare type ButtonVariant = 'primary' | 'secondary' | 'tertiary';
export declare type LegacyButtonVariant = 'primary' | 'secondary' | 'tertiary' | 'action-outline' | 'error-outline' | 'success-outline' | 'info-outline' | 'dropdown' | 'dropdown-secondary' | 'form';
export declare type SizingObject = {
    [key in ButtonSizes]: number;
};
export interface ButtonProps extends ButtonAttributes {
    /**
     * Sets the button to be 100% of the width of its parent
     * @since 10.19.0
     */
    block?: boolean;
    /**
     * string icons have been deprecated, please pass a component from `@procore/core-icons`
     * The icon to display on the left side of the label
     * @since 10.19.0
     */
    icon?: string | React.ReactNode;
    /**
     * The icon to display on the right side of the label
     * @since 10.19.0
     */
    iconRight?: React.ReactNode;
    /**
     * Shows the button spinner
     * @since 10.19.0
     */
    loading?: boolean;
    /**
     * The size of the button
     * @since 10.19.0
     */
    size?: ButtonSizes;
    /**
     * All variants except for primary, secondary, tertiary are DEPRECATED.
     * All will still be accepted, but deprecated ones will look like secondary
     * @since 10.19.0
     */
    variant?: LegacyButtonVariant;
}
export interface LinkButtonProps extends AnchorAttributes, Pick<ButtonProps, 'block' | 'disabled' | 'icon' | 'iconRight' | 'size' | 'variant'> {
}
