import React from 'react';
import { MergeElementProps } from '../_util/type';
declare type DeprecatedVariant = 'text' | 'textCritical';
declare type Variant = 'primary' | 'primaryCritical' | 'secondary' | 'secondaryCritical' | 'tertiary' | 'tertiaryCritical' | 'textTertiary' | 'textTertiaryCritical' | 'inverse' | DeprecatedVariant;
declare type ButtonVariant = Exclude<Variant, DeprecatedVariant>;
export declare type ButtonProps<P extends React.ElementType = 'button'> = {
    component?: P;
} & MergeElementProps<P, {
    variant?: ButtonVariant;
    size?: 'sm' | 'md' | 'lg';
    blocked?: boolean;
    loading?: boolean;
}>;
declare function ButtonBase<T extends React.ElementType = 'button'>({ children, className, size, variant, blocked, loading, component, ...rest }: ButtonProps<T>, ref: React.Ref<HTMLButtonElement>): React.ReactElement<any, string | React.JSXElementConstructor<any>>;
declare const Button: typeof ButtonBase;
export default Button;
//# sourceMappingURL=Button.d.ts.map