import React from 'react';
type LinkOnClick = ((e?: React.MouseEvent<HTMLElement>) => void) | undefined;
export interface ILinkProps {
    /** URL for link */
    href?: string | undefined;
    /** Content to rendered */
    children: JSX.Element | JSX.Element[] | string;
    /** The element the content should be wrapped in, if it is not a link; nothing is rendered if it's undefined */
    fallbackElement?: 'div' | 'li' | 'span' | 'strong';
    /** Additonal classes */
    className?: string;
    /** Function to be called when clicked */
    onClick?: LinkOnClick;
    /** Function to be called when focused */
    onFocus?: ((e?: React.FocusEvent<HTMLElement>) => void) | undefined;
    /** Function to be called when key is pressed */
    onKeyDown?: ((e?: React.KeyboardEvent<HTMLElement>) => void) | undefined;
    meta?: {
        /** Whether to force the onClick event to fire, even if the element is not a link */
        forceOnClick?: boolean;
    };
    /** GTM event context */
    gtmContext?: string;
    /** GTM event type */
    gtmType?: string;
    /** Target for link */
    target?: '_blank' | '_self' | '_parent' | '_top';
    /** The tab index of the link, e.g. in case we're setting up event handlers to move the focus on arrow press and want to remove the default tabability of the link */
    tabIndex?: number;
    /** Whether link should be disabled */
    disabled?: boolean;
    /** An ARIA label for the link */
    ariaLabel?: string;
    /** Optional ARIA current state, for breadcrumbs */
    'aria-current'?: 'page' | 'location';
    /** Test id for link */
    'data-testid'?: string;
    /** Data attributes for the link */
    'data-before'?: string;
}
declare const Link: ({ href, children, fallbackElement, meta, className, onClick, gtmContext, gtmType, ...props }: ILinkProps) => import("react/jsx-runtime").JSX.Element;
export default Link;
