import * as React from 'react'; import { OverridableComponent, OverrideProps, OverridableTypeMap } from '../overridable-component'; import { IStyledCommonProps } from '../styled'; import { ITextProps } from '../text'; import { LinkClasses } from './link-classes'; export type LinkColorType = 'primary' | 'textSecondary' | 'textPrimary' | 'inherit' | 'danger'; export interface ILinkTypeMap

{ props: P & IStyledCommonProps & { /** * The content of the component. */ children?: React.ReactNode; /** * Override or extend the styles applied to the component. */ classes?: Partial; /** * The color of the link. * @default 'primary' */ color?: LinkColorType; /** * The component used for the root node. * Either a string to use a HTML element or a component. * @default 'a' */ component?: React.ElementType; /** * icon to display at the start of the link */ endIcon?: React.ReactElement; noWrap?: ITextProps['noWrap']; /** * Applies the theme typography styles. * @default 'inherit' */ variant?: ITextProps['variant']; /** * icon to display at the end of the link */ startIcon?: React.ReactElement; /** * Applies underline styles * @default 'none' */ underline?: 'none' | 'hover'; /** * Analytics ID */ analyticsId?: string; }; defaultComponent: D; } export interface IExtendLinkTypeMap { props: M['props'] & (M['props'] extends { classes?: Record; } ? Omit : ILinkTypeMap['props']); defaultComponent: M['defaultComponent']; } export type ExtendLink = ((props: OverrideProps, 'a'>) => JSX.Element) & OverridableComponent>; export type ILinkProps = OverrideProps, D>; export declare const Link: OverridableComponent;