import { ButtonHTMLAttributes, FC, ReactNode } from 'react';
import { ButtonShape, ButtonSize, ButtonKind, ButtonLayout } from './button.variants';
type ButtonPropsWithLabel = {
    children?: never;
};
type ButtonPropsWithChildren = {
    children: ReactNode;
};
export type ButtonProps = ButtonHTMLAttributes<HTMLButtonElement> & (ButtonPropsWithLabel | ButtonPropsWithChildren) & {
    label?: string;
    href?: string;
    size?: keyof typeof ButtonSize;
    shape?: keyof typeof ButtonShape;
    kind?: keyof typeof ButtonKind;
    layout?: keyof typeof ButtonLayout;
    children?: ReactNode;
};
/**
 * Button as Anchor
 * @example <Button as="a" href="https://..." />
 *
 * Button with Label
 * @example <Button label="..." />
 *
 * Button with Child Element
 * @example <Button><Child /></Button>
 */
export declare const Button: FC<ButtonProps>;
/**
 * ## Button Variants
 */
export declare const ButtonPrimary: FC<ButtonProps>;
export declare const ButtonSecondary: FC<ButtonProps>;
export declare const ButtonTextOnly: FC<ButtonProps>;
export {};
