import { SVGAttributes } from 'react';
import { IconDefinition } from '@gnome-ui/icons';
export type IconSize = "sm" | "md" | "lg";
export interface IconProps extends SVGAttributes<SVGSVGElement> {
    /** Icon definition imported from `@gnome-ui/icons`. */
    icon: IconDefinition;
    /**
     * Rendered size.
     * - `sm` — 12 px
     * - `md` — 16 px (default)
     * - `lg` — 20 px
     *
     * Override with `width`/`height` for non-standard sizes.
     */
    size?: IconSize;
    /** Accessible label. Omit for decorative icons — they are hidden from screen readers. */
    label?: string;
}
/**
 * Renders an `@gnome-ui/icons` definition as an inline SVG.
 *
 * Uses `currentColor` so the icon inherits the text color of its parent.
 * Pass `label` only when the icon conveys meaning on its own;
 * omit it when a sibling text label already describes the action.
 *
 * @example
 * import { Search } from "@gnome-ui/icons";
 * <Icon icon={Search} label="Search" />
 */
export declare function Icon({ icon, size, label, width, height, ...props }: IconProps): import("react/jsx-runtime").JSX.Element;
