import * as tailwind_variants from 'tailwind-variants';
import { VariantProps } from 'tailwind-variants';
import * as tailwind_variants_dist_config_js from 'tailwind-variants/dist/config.js';

declare const linkVariants: tailwind_variants.TVReturnType<{
    size: {
        md: string;
        ml: string;
    };
    disabled: {
        true: string;
        false: string;
    };
    full: {
        true: string;
    };
    withIcon: {
        true: string;
    };
}, undefined, "letter-spacing-default inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md rounded-pill border-action-border-neutral-tertiary-enabled bg-action-fill-neutral-tertiary-enabled px-fourpulse text-text-neutral hover:border-action-border-neutral-tertiary-hovered hover:bg-action-fill-neutral-tertiary-hovered focus:border-action-border-focused focus:border-halfpulse active:border-action-border-neutral-tertiary-pressed active:bg-action-fill-neutral-tertiary-pressed focus:active:border-action-border-focused", {
    responsiveVariants?: boolean | ("sm" | "md" | "lg" | "xl" | "2xl")[] | {
        size?: boolean | ("sm" | "md" | "lg" | "xl" | "2xl")[] | undefined;
        disabled?: boolean | ("sm" | "md" | "lg" | "xl" | "2xl")[] | undefined;
        full?: boolean | ("sm" | "md" | "lg" | "xl" | "2xl")[] | undefined;
        withIcon?: boolean | ("sm" | "md" | "lg" | "xl" | "2xl")[] | undefined;
    } | undefined;
} & tailwind_variants_dist_config_js.TWMConfig & {
    twMergeConfig: {
        extend: {
            classGroups: {
                'font-size': {
                    text: string[];
                }[];
                'border-width': {
                    border: string[];
                }[];
                '--tw-ring-inset': {
                    ring: string[];
                }[];
            };
        };
    };
}, {
    size: {
        md: string;
        ml: string;
    };
    disabled: {
        true: string;
        false: string;
    };
    full: {
        true: string;
    };
    withIcon: {
        true: string;
    };
}, undefined, tailwind_variants.TVReturnType<{
    size: {
        md: string;
        ml: string;
    };
    disabled: {
        true: string;
        false: string;
    };
    full: {
        true: string;
    };
    withIcon: {
        true: string;
    };
}, undefined, "letter-spacing-default inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md rounded-pill border-action-border-neutral-tertiary-enabled bg-action-fill-neutral-tertiary-enabled px-fourpulse text-text-neutral hover:border-action-border-neutral-tertiary-hovered hover:bg-action-fill-neutral-tertiary-hovered focus:border-action-border-focused focus:border-halfpulse active:border-action-border-neutral-tertiary-pressed active:bg-action-fill-neutral-tertiary-pressed focus:active:border-action-border-focused", tailwind_variants_dist_config_js.TVConfig<{
    size: {
        md: string;
        ml: string;
    };
    disabled: {
        true: string;
        false: string;
    };
    full: {
        true: string;
    };
    withIcon: {
        true: string;
    };
}, {
    size: {
        md: string;
        ml: string;
    };
    disabled: {
        true: string;
        false: string;
    };
    full: {
        true: string;
    };
    withIcon: {
        true: string;
    };
}>, unknown, unknown, undefined>>;

/**
 * Representa as props de um link primitivo, excluindo a propriedade 'size'.
 */
type PrimitiveLinkProps = Omit<React.ComponentProps<'a'>, 'size'>;
/**
 * Representa as props para o componente Link.
 */
type LinkProps = PrimitiveLinkProps & VariantProps<typeof linkVariants> & {
    /**
     * Indica se o link exibirá um ícone.
     */
    icon?: boolean;
    /**
     * Define o tamanho do texto e do ícone, se presente.
     */
    size?: 'md' | 'ml';
    /**
     * Desativa a interatividade do link.
     */
    disabled?: boolean;
    /**
     * Define se o link ocupará toda a largura do contêiner.
     */
    full?: boolean;
    /**
     * Texto a ser exibido dentro do link.
     */
    children: React.ReactNode;
};

export type { LinkProps as L };
