import * as React from 'react';
import { buttonClasses, ButtonProps as MuiButtonProps } from '@mui/material/Button';
import { OverridableComponent, OverrideProps, OverridableTypeMap } from '../overridable-component';
import { ISpinnerProps } from '../spinner';
export declare const buttonComponentName: "QuantumButton";
export { buttonClasses };
export interface IButtonTypeMap
{
props: P & Omit & {
isLoading?: boolean;
component?: React.ElementType;
target?: string;
rel?: string;
/** Alternative to using `props.children`. This is a convenience prop for other components using an `action` prop */
label?: React.ReactNode;
SpinnerProps?: Partial;
maxWidth?: string;
analyticsId?: string;
};
defaultComponent: D;
}
export interface IExtendButtonTypeMap {
props: M['props'] & (M['props'] extends {
classes?: Record;
} ? Omit : IButtonTypeMap['props']);
defaultComponent: M['defaultComponent'];
}
export type ExtendButton = ((props: OverrideProps, 'button'>) => JSX.Element) & OverridableComponent>;
export type IButtonProps = OverrideProps, D>;
export declare const Button: OverridableComponent;
declare module '@mui/material/Button' {
interface ButtonPropsColorOverrides {
danger: true;
default: true;
error: false;
secondary: false;
success: false;
warning: false;
}
interface ButtonPropsVariantOverrides {
link: true;
text: false;
}
}