import React, { HTMLProps } from 'react';
import { LgIdProps } from '@leafygreen-ui/lib';
import { InferredPolymorphicProps, PolymorphicAs } from '@leafygreen-ui/polymorphic';
import { BaseFontSize } from '@leafygreen-ui/tokens';
export declare const Variant: {
readonly Default: "default";
readonly Primary: "primary";
readonly PrimaryOutline: "primaryOutline";
readonly Danger: "danger";
readonly DangerOutline: "dangerOutline";
readonly BaseGreen: "baseGreen";
};
export type Variant = (typeof Variant)[keyof typeof Variant];
/**
* Size variants
*
* @default 'default'
*/
export declare const Size: {
readonly XSmall: "xsmall";
readonly Small: "small";
readonly Default: "default";
readonly Large: "large";
};
export type Size = (typeof Size)[keyof typeof Size];
export declare const FontSize: {
readonly Body1: 13;
readonly Body2: 16;
};
export type FontSize = (typeof FontSize)[keyof typeof FontSize];
export interface BaseButtonProps extends LgIdProps {
/**
* Determines whether the button element will be disabled.
*
* @default false
*/
disabled?: HTMLProps['disabled'];
/**
* Callback fired when the button is clicked
*
* @default `() => {}`
*/
onClick?: HTMLProps['onClick'];
/**
* Specifies the `type` property of the HTML button element
*
* @default button
*/
type?: HTMLProps['type'];
/**
* Specifies a CSS class passed to the element.
*/
className?: HTMLProps['className'];
/**
* Sets the variant for the Button
*
* @default "default"
*/
variant?: Variant;
/**
* Determines if the component renders in dark mode
*
* @default false
*/
darkMode?: boolean;
/**
* Determines the base font-size of the component
*
* @default 13
*/
baseFontSize?: BaseFontSize;
/**
* Sets the size for the Button
*
* @default "default"
*/
size?: Size;
/**
* The content that will appear inside of the `` component.
*/
children?: React.ReactNode;
/**
* An icon glyph rendered before the button text.
* To use a custom icon, see {@link Icon} {@link https://github.com/mongodb/leafygreen-ui/blob/main/packages/icon/README.md#usage-registering-custom-icon-sets | createIconComponent} docs
* @type Leafygreen Component
*/
leftGlyph?: React.ReactElement;
/**
* An icon glyph rendered after the button text.
* To use a custom icon, see {@link Icon} {@link https://github.com/mongodb/leafygreen-ui/blob/main/packages/icon/README.md#usage-registering-custom-icon-sets | createIconComponent} docs
* @type Leafygreen Component
*/
rightGlyph?: React.ReactElement;
/**
* Indicates whether the Button is in a loading state
*/
isLoading?: boolean;
/**
* String displayed in place of `children` while the button is in a loading state
*/
loadingText?: string;
/**
* Visual indicator display to convey that component is loading.
*/
loadingIndicator?: React.ReactElement;
}
export type ButtonProps = InferredPolymorphicProps;
//# sourceMappingURL=types.d.ts.map