
import { UniversalLinkProps } from "../types/dist/index.js";
import { IconPropsWithSVGProps } from "../tokens/types.js";
import * as _$react from "react";

//#region src/components/Link.d.ts
type HTMLAnchorProps = React.AnchorHTMLAttributes<HTMLAnchorElement>;
type DataAttributes = {
  [name: `data-${string}`]: string;
};
interface LinkProps extends HTMLAnchorProps, UniversalLinkProps {
  /** The link's destination. */
  href?: string;
  /** Anchor rel property. @default "noopener" **/
  rel?: string;
  /** Props to be passed into various slots within the component. */
  slotProps?: {
    startIcon?: Partial<IconPropsWithSVGProps & DataAttributes>;
    endIcon?: Partial<IconPropsWithSVGProps & DataAttributes>;
    text?: Partial<React.HTMLAttributes<HTMLSpanElement> & DataAttributes>;
  };
}
/**
 * A Link provides navigation or actionable functionality by linking users to
 * another location within an application, an external resource, or triggering
 * specific in-page interactions (i.e. scroll-to-section).
 *
 * @componentType Client component
 *
 * @description
 * A link component provides navigation or actionable functionality by linking users to another location within an application, an external resource, or triggering specific in-page interactions (i.e. scroll-to-section). This is different than a “button” link which is a button component without a border or fill.
 *
 * @see
 * Check out the {@link https://uds.build/docs/components/link Link Docs} for more info
 *
 * @usage
 * - Provide a way for users to navigate to another location.
 * - Provide a trigger for in-page interactions.
 *
 * @example
 * ```tsx
 * 'use client';
 * import { Link } from '@yahoo/uds';
 * import { Share, Link as LinkIcon } from '@yahoo/uds-icons';
 *
 * <Link href="#">My Link</Link>
 * <Link href="#" startIcon={Share} />
 * <Link href="https://yahoo.com" target="_blank" endIcon={LinkIcon} />
 *```
 **/
declare const Link: _$react.ForwardRefExoticComponent<LinkProps & _$react.RefAttributes<HTMLAnchorElement>>;
//#endregion
export { Link, type LinkProps };