
import { UniversalIconSlot } from "../types/dist/index.js";
import { IconPropsWithSVGProps } from "../tokens/types.js";
import React from "react";

//#region src/components/IconSlot.d.ts
interface IconSlotProps {
  /** The icon to render. Can be a UDS icon, an Icon component, ReactNode, or a function that a ReactNode. */
  icon?: UniversalIconSlot;
  /** Props to spread onto the icon. */
  iconProps?: Omit<IconPropsWithSVGProps, 'name'>;
  className?: string;
}
/**
 * A helper container to render a SvgIcon, Icon component, or ReactNode.
 *
 * Useful in components that use icons and have a startIcon and endIcon. It allows
 * consumers to pass in a standard UDS icon (`SvgIcon`) or a ReactNode if they
 * need to override props on the icon. For example, pass an `<Icon>` to override
 * the icon variant. Pass a `<IconButton>` to support interactivity on an icon slot.
 *
 * Examples:
 * ```
 * <Input startIcon={Info} />
 * <Input startIcon={<Icon name={Info} variant="fill" />} />
 * <Input startIcon={() => <Icon name={Info} variant="fill" />} />
 * <Input endIcon={() => <IconButton name={Info} aria-label="My label" />} />
 * ```
 */
declare const IconSlot: React.NamedExoticComponent<IconSlotProps>;
//#endregion
export { IconSlot, type IconSlotProps };