import React, { ReactNode } from 'react';
import { BoxProps } from '../box/Box';
import { SIZES } from '../../constants/sizes';
import { GenericComponent } from '../../@types/types';
export interface MarketingButtonProps extends Omit<BoxProps, 'ref' | 'element'> {
    /** The content to display inside the button. */
    children?: ReactNode;
    /** A class name for the button to give custom styles. */
    className?: string;
    /** A custom element to be rendered */
    element?: React.ElementType;
    /** Determines which kind of button to be rendered. */
    level?: 'primary' | 'secondary' | 'link';
    /** If true, component will be disabled. */
    disabled?: boolean;
    /** If true, component will take the full width available. */
    fullWidth?: boolean;
    /** The icon displayed inside the button. */
    icon?: ReactNode;
    /** The position of the icon inside the button. */
    iconPlacement?: 'left' | 'right';
    /** Callback function that is fired when mouse leaves the component. */
    onMouseLeave?: (event: React.MouseEvent) => void;
    /** Callback function that is fired when the mouse button is released. */
    onMouseUp?: (event: React.MouseEvent) => void;
    /** If true, component will show a loading spinner instead of label or children. */
    processing?: boolean;
    /** Size of the button. */
    size?: Exclude<typeof SIZES[number], 'fullscreen' | 'smallest' | 'hero'>;
    /** Type of the button element. */
    type?: string;
}
declare const MarketingButton: GenericComponent<MarketingButtonProps>;
export default MarketingButton;
