import { VariantProps } from 'class-variance-authority';
import { ButtonHTMLAttributes, ReactNode } from 'react';
import { ButtonColorTypes, ButtonRoundedTypes, ButtonSizeTypes, ButtonVariantTypes } from '../../../types/button-types';
declare const buttonVariants: (props?: ({
    variant?: "link" | "transparent" | "dashed" | "contained" | "outlined" | "soft" | "soft-outlined" | null | undefined;
    color?: "dark" | "light" | "primary" | "secondary" | "success" | "danger" | "warning" | "info" | null | undefined;
    size?: "sm" | "md" | "lg" | null | undefined;
    rounded?: "sm" | "md" | "lg" | "none" | "full" | null | undefined;
    isIcon?: boolean | null | undefined;
    fullWidth?: boolean | null | undefined;
    disabled?: boolean | null | undefined;
    pressed?: boolean | null | undefined;
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
export interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {
    variant?: ButtonVariantTypes;
    size?: ButtonSizeTypes;
    children: ReactNode;
    rounded?: ButtonRoundedTypes;
    href?: string;
    color?: ButtonColorTypes;
    startIcon?: ReactNode;
    endIcon?: ReactNode;
    isLoading?: boolean;
    isSkeleton?: boolean;
    fullWidth?: boolean;
    disabled?: boolean;
    pressed?: boolean;
    labelPosition?: "left" | "right" | "center";
    [key: string]: any;
}
declare const Button: import('react').ForwardRefExoticComponent<Omit<ButtonProps, "ref"> & import('react').RefAttributes<HTMLButtonElement>>;
export default Button;
