import { default as React, ElementType, ReactNode } from 'react'; import { BaseColor, ElementFocusEffect, ElementFont, ElementHoverEffect, ElementPressedEffect } from '../../utils'; /** * Props for {@link Link}. * * Polymorphic inline link that can render as a native anchor or custom navigation component. * Supports optional leading/trailing visuals, underline behavior, and interaction effects. * * @category Link */ export type LinkProps = { /** Underlying element or router component. */ as?: T; /** Link content. */ children?: ReactNode; /** Fallback text when children is not provided. */ label?: string; /** Leading visual element. */ leading?: ReactNode; /** Trailing visual element. */ trailing?: ReactNode; /** Color token applied to text. */ color?: BaseColor; /** Underline visibility behavior. */ underline?: 'none' | 'hover' | 'always'; /** Font token applied to content. */ font?: ElementFont; /** Opens link in new tab with security attributes. */ external?: boolean; /** Accessibility label override. */ 'aria-label'?: string; /** Additional class applied to the root element. */ className?: string; /** Disables interaction and focus. */ disabled?: boolean; /** Hover visual effects. */ hoverEffects?: ElementHoverEffect[]; /** Focus visual effects. */ focusEffects?: ElementFocusEffect[]; /** Pressed visual effects. */ pressedEffects?: ElementPressedEffect[]; /** Underline animation origin. */ underlineOrigin?: 'left' | 'center'; /** Underline animation type. */ underlineAnimation?: 'scale' | 'fade'; } & Omit, 'as' | 'color' | 'children' | 'className'>; export interface LinkComponent { /** * Renders a polymorphic link element. * * @typeParam T - Element type rendered by the component. * @param props - Link configuration and props for the rendered element type. */ (props: LinkProps): ReactNode; displayName?: string; } export declare const Link: LinkComponent;