import * as React from 'react'; import { CreateSlotsAndSlotProps, SlotCommonProps, SlotProps } from '../types/slot'; import { OverrideProps } from '@mui/types'; import { TypographyProps } from '../Typography'; export interface LinkSlots { /** * The component that renders the root. * @default 'a' */ root?: React.ElementType; /** * The component that renders the start decorator. * @default 'span' */ startDecorator?: React.ElementType; /** * The component that renders the end decorator. * @default 'span' */ endDecorator?: React.ElementType; } export interface LinkPropsColorOverrides { } export type LinkSlotsAndSlotProps = CreateSlotsAndSlotProps; startDecorator: SlotProps<'span', object, LinkOwnerState>; endDecorator: SlotProps<'span', object, LinkOwnerState>; }>; export interface LinkTypeMap

{ props: P & { /** * If `true`, the component is disabled. * @default false */ disabled?: boolean; /** * Element placed before the children. */ startDecorator?: React.ReactNode; /** * Element placed after the children. */ endDecorator?: React.ReactNode; /** * Controls when the link should have an underline. * @default 'always' */ underline?: 'none' | 'hover' | 'always'; /** * Applies the theme typography styles. * @default 'labelMedium' */ variant?: TypographyProps['variant']; } & LinkSlotsAndSlotProps; defaultComponent: D; } export type LinkProps = OverrideProps, D>; export interface LinkOwnerState extends LinkProps { /** * If `true`, the element's focus is visible. */ focusVisible?: boolean; }