import { ComponentPropsWithoutRef } from 'react';
import { DataTrackingId, ButtonAppearance, LayoutUtilProps, Size } from '../../types';
import { IconProps } from '../Icon';
/**
 * Props for the ButtonLink component
 * @extends LayoutUtilProps
 * @extends ComponentPropsWithoutRef<"a">
 */
export type ButtonLinkProps = LayoutUtilProps & ComponentPropsWithoutRef<"a"> & {
    /**
     * The disabled state of the button link.
     * @default false
     */
    disabled?: boolean;
    /**
     * The visual variant of the button link.
     * @default secondary
     */
    appearance?: ButtonAppearance;
    /**
     * The size of the button link.
     * @default medium
     */
    size?: Extract<Size, "xsmall" | "small" | "medium" | "large">;
    /**
     * The icons of the button link.
     */
    icon?: IconProps["svg"] | {
        after: IconProps["svg"];
    } | {
        before: IconProps["svg"];
    };
    /**
     * The loading state of the button link.
     * If true, it will show infinite state of the loading.
     * @default false
     */
    loading?: boolean;
} & 
/**
 * Data tracking id
 */
DataTrackingId;
/**
 * ButtonLink component for creating clickable links that look like buttons.
 *
 * Features:
 * - Multiple visual appearances (primary, secondary, ghost, danger variants)
 * - Four size options (xsmall, small, medium, large)
 * - Loading state with spinner animation
 * - Icon support (before, after, or icon-only)
 * - Full accessibility support with proper ARIA attributes
 * - Supports layout utilities for positioning and spacing
 * - Keyboard navigation support (Space and Enter keys)
 * - Automatic disabled state when loading
 * - Prevents navigation when disabled or loading
 * - Flexible content with text and/or icons
 * - Automatic tracking ID generation for analytics
 *
 * @example
 * <ButtonLink href="/dashboard" appearance="primary" size="medium">
 *   Go to Dashboard
 * </ButtonLink>
 */
export declare const ButtonLink: import('react').ForwardRefExoticComponent<LayoutUtilProps & Omit<import('react').DetailedHTMLProps<import('react').AnchorHTMLAttributes<HTMLAnchorElement>, HTMLAnchorElement>, "ref"> & {
    /**
     * The disabled state of the button link.
     * @default false
     */
    disabled?: boolean;
    /**
     * The visual variant of the button link.
     * @default secondary
     */
    appearance?: ButtonAppearance;
    /**
     * The size of the button link.
     * @default medium
     */
    size?: Extract<Size, "xsmall" | "small" | "medium" | "large">;
    /**
     * The icons of the button link.
     */
    icon?: IconProps["svg"] | {
        after: IconProps["svg"];
    } | {
        before: IconProps["svg"];
    };
    /**
     * The loading state of the button link.
     * If true, it will show infinite state of the loading.
     * @default false
     */
    loading?: boolean;
} & DataTrackingId & import('react').RefAttributes<HTMLAnchorElement>>;
