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;