import { type ComponentProps, type FC, type ReactNode } from 'react';
import { type VariantProps } from 'class-variance-authority';
export declare const buttonVariants: (props?: ({
    active?: boolean | null | undefined;
    disabled?: boolean | null | undefined;
    focused?: boolean | null | undefined;
    isMenu?: boolean | null | undefined;
    size?: "default" | "xs" | "lg" | "icon" | "none" | "md" | "blockAction" | "iconSm" | "menuAction" | "navAction" | null | undefined;
    truncate?: boolean | null | undefined;
    variant?: "default" | "outline" | "secondary" | "ghost" | "destructive" | "nav" | "none" | "radio" | "blockAction" | "menuAction" | "navAction" | "blockActionSecondary" | "brand" | "ghost2" | "ghost3" | "ghostActive" | "primaryOutline" | null | undefined;
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
export type ButtonExtendedProps = {
    active?: boolean;
    asChild?: boolean;
    icon?: ReactNode;
    iconPlacement?: 'left' | 'right';
    isPending?: boolean;
    loading?: boolean;
    loadingClassName?: string;
    onToggleClick?: () => void;
} & {
    children?: ReactNode;
    label?: string;
} & VariantProps<typeof buttonVariants>;
export type ButtonProps = ButtonExtendedProps & ComponentProps<'button'> & {
    shortcut?: ReactNode;
    tooltip?: ReactNode;
    tooltipContentProps?: Record<string, unknown>;
    tooltipProps?: Record<string, unknown>;
    tooltipTriggerProps?: Record<string, unknown>;
};
export declare const Button: FC<ButtonProps>;
export type LinkButtonProps = ButtonExtendedProps & ComponentProps<'a'> & {
    shortcut?: ReactNode;
    tooltip?: ReactNode;
    tooltipContentProps?: Record<string, unknown>;
    tooltipProps?: Record<string, unknown>;
    tooltipTriggerProps?: Record<string, unknown>;
};
export declare const LinkButton: FC<LinkButtonProps>;
