import { Ref, ElementType, ReactNode } from 'react';
import { type ResponsiveColor } from '../../utils/types';
import { ButtonVariant } from './contants';
import { type LinkData, type ResponsiveLengthData, type ResponsiveTextStyleData, type ResponsiveSelectValue, type ResponsiveIconRadioGroupValue } from '@makeswift/prop-controllers';
type BaseProps<T extends ElementType> = {
    as?: T;
    id?: string;
    children?: ReactNode;
    link?: LinkData;
    variant?: ResponsiveSelectValue<ButtonVariant>;
    shape?: ResponsiveIconRadioGroupValue<'pill' | 'rounded' | 'square'>;
    size?: ResponsiveIconRadioGroupValue<'small' | 'medium' | 'large'>;
    color?: ResponsiveColor | null;
    textColor?: ResponsiveColor | null;
    textStyle?: ResponsiveTextStyleData;
    width?: ResponsiveLengthData;
    margin?: string;
};
declare const Button: import("react").ForwardRefExoticComponent<BaseProps<ElementType> & Omit<Omit<{
    link?: LinkData;
    onClick?: (event: import("react").MouseEvent<HTMLAnchorElement>) => unknown;
} & Omit<Omit<import("react").DetailedHTMLProps<import("react").AnchorHTMLAttributes<HTMLAnchorElement>, HTMLAnchorElement>, "ref">, keyof {
    link?: LinkData;
    onClick?: (event: import("react").MouseEvent<HTMLAnchorElement>) => unknown;
}> & import("react").RefAttributes<HTMLAnchorElement>, "ref">, keyof BaseProps<T>> & import("react").RefAttributes<Ref<ElementType>>>;
export default Button;
//# sourceMappingURL=Button.d.ts.map