/** @module @airtable/blocks/ui: Link */ /** */
import * as PropTypes from 'prop-types';
import * as React from 'react';
import { EnumType } from '../private_utils';
import { AriaProps } from './types/aria_props';
import { DataAttributesProp } from './types/data_attributes_prop';
import { OptionalResponsiveProp } from './system/utils/types';
import { MaxWidthProps, MinWidthProps, WidthProps, FlexItemSetProps, PositionSetProps, FontWeightProps, SpacingSetProps } from './system';
import { TooltipAnchorProps } from './types/tooltip_anchor_props';
import { TextSizeProp } from './text';
import { IconName } from './icon_config';
/**
 * Style props for the {@link Link} component. Also accepts:
 * * {@link FlexItemSetProps}
 * * {@link FontWeightProps}
 * * {@link MaxWidthProps}
 * * {@link MinWidthProps}
 * * {@link PositionSetProps}
 * * {@link SpacingSetProps}
 * * {@link WidthProps}
 *
 * @noInheritDoc
 */
export interface LinkStyleProps extends MaxWidthProps, MinWidthProps, WidthProps, FlexItemSetProps, PositionSetProps, FontWeightProps, SpacingSetProps {
    /** Defines the display type of an element, which consists of the two basic qualities of how an element generates boxes — the outer display type defining how the box participates in flow layout, and the inner display type defining how the children of the box are laid out. */
    display?: OptionalResponsiveProp<'inline-flex' | 'flex' | 'none'>;
}
export declare const linkStylePropTypes: {
    display: PropTypes.Validator<any>;
};
/**
 * Variants for the {@link Link} component:
 *
 * • **default**
 *
 * Blue text.
 *
 * • **dark**
 *
 * Dark gray text.
 *
 * • **light**
 *
 * Light gray text.
 */
declare type LinkVariant = EnumType<typeof LinkVariant>;
declare const LinkVariant: {
    default: "default";
    dark: "dark";
    light: "light";
};
/**
 * Props for the {@link Link} component. Also supports:
 * * {@link AriaProps}
 * * {@link LinkStyleProps}
 *
 * @docsPath UI/components/Link
 * @noInheritDoc
 */
interface LinkProps extends AriaProps, LinkStyleProps, TooltipAnchorProps<HTMLAnchorElement> {
    /** The size of the link. Defaults to `default`. Can be a responsive prop object. */
    size?: TextSizeProp;
    /** The variant of the link, which defines the color. Defaults to `default`. */
    variant?: LinkVariant;
    /** The name of the icon or a react node. For more details, see the {@link IconName|list of supported icons}. */
    icon?: IconName | React.ReactElement;
    /** Adds an underline to the link when true. */
    underline?: boolean;
    /** The target URL or URL fragment for the link. */
    href: string;
    /** Specifies where to display the linked URL. */
    target?: string;
    /** The `id` attribute. */
    id?: string;
    /** Indicates if the link can be focused and if/where it participates in sequential keyboard navigation. */
    tabIndex?: number;
    /** Additional class names to apply to the link. */
    className?: string;
    /** Additional styles to apply to the link. */
    style?: React.CSSProperties;
    /** Data attributes that are spread onto the element, e.g. `dataAttributes={{'data-*': '...'}}`. */
    dataAttributes?: DataAttributesProp;
    /** The contents of the link. */
    children: React.ReactNode | string;
}
declare const ForwardedRefLink: React.ForwardRefExoticComponent<LinkProps & React.RefAttributes<HTMLAnchorElement>>;
export default ForwardedRefLink;
