import React from 'react';
import { VariantProps } from 'class-variance-authority';
import { IconIds } from '../../molecules/Icon/iconIds';
import { VideoPopupProps } from '../../components/VideoPopup';
export interface ButtonProps extends React.ButtonHTMLAttributes<HTMLAnchorElement | HTMLButtonElement>, VariantProps<typeof button> {
    url?: string;
    label?: React.ReactNode;
    startIcon?: IconIds;
    endIcon?: IconIds;
    iconClassName?: string;
    iconSize?: "sm" | "md" | "lg" | "xl" | null | undefined;
    videoPopup?: VideoPopupProps;
}
declare const button: (props?: ({
    hierarchy?: "primary" | "link" | "secondary" | "tertiary" | "outline" | "purpleGradient" | "greenGradient" | null | undefined;
    size?: "md" | "lg" | "sm" | "xl" | null | undefined;
    isIconOnly?: boolean | null | undefined;
} & {
    class: import("clsx").ClassValue;
    className?: undefined;
}) | ({
    hierarchy?: "primary" | "link" | "secondary" | "tertiary" | "outline" | "purpleGradient" | "greenGradient" | null | undefined;
    size?: "md" | "lg" | "sm" | "xl" | null | undefined;
    isIconOnly?: boolean | null | undefined;
} & {
    class?: undefined;
    className: import("clsx").ClassValue;
}) | ({
    hierarchy?: "primary" | "link" | "secondary" | "tertiary" | "outline" | "purpleGradient" | "greenGradient" | null | undefined;
    size?: "md" | "lg" | "sm" | "xl" | null | undefined;
    isIconOnly?: boolean | null | undefined;
} & {
    class?: undefined;
    className?: undefined;
}) | undefined) => string;
export declare const Button: ({ className, hierarchy, size, url, label, children, startIcon, endIcon, iconClassName, iconSize: iconSizeProp, videoPopup, ...props }: ButtonProps) => React.JSX.Element;
export {};
