import { IGlobalAttributes, IParent, ICustomizable } from '../../core'; import { ControlGroupContextValue } from '../../controls/control-group/context'; import { ButtonColor, ButtonVariant, ButtonSize } from '../types'; interface SquareButtonBaseProps extends IGlobalAttributes, IParent, ICustomizable { color?: ButtonColor; variant?: ButtonVariant.Primary | ButtonVariant.Secondary; size?: ButtonSize.XSmall | ButtonSize.Small | ButtonSize.Medium | ButtonSize.Large | ButtonSize.XLarge; disabled?: boolean; stretch?: boolean; animated?: boolean; } /** * `icon` is required and is the only allowed prop when using `iconOnly` button layout */ interface IconOnlySquareButtonBaseProps extends SquareButtonBaseProps { /** * Alias for `startIcon` */ icon: string; iconOnly: true; startIcon?: undefined; endIcon?: undefined; } /** * `icon` and `startIcon` props are interchangeable, but only one of them can be used at a time. * This interface represents the case when the `icon` alias is used instead of the default `startIcon` prop. */ interface IconAliasSquareButtonBaseProps extends SquareButtonBaseProps { /** * Alias for `startIcon` */ icon: string; iconOnly?: undefined; startIcon?: undefined; endIcon?: string; } /** * `icon` and `startIcon` props are interchangeable, but only one of them can be used at a time. * This interface represents the case when the default `startIcon` prop is used instead of the `icon` alias. */ interface NormalSquareButtonBaseProps extends SquareButtonBaseProps { /** * Alias for `startIcon` */ icon?: undefined; iconOnly?: undefined; startIcon?: string; endIcon?: string; } export declare type CommonSquareButtonProps = IconOnlySquareButtonBaseProps | IconAliasSquareButtonBaseProps | NormalSquareButtonBaseProps; export declare function getSquareButtonClasses(props: CommonSquareButtonProps & ControlGroupContextValue): string; export declare function SquareButtonContent(props: CommonSquareButtonProps): JSX.Element; export {};