import { PropertyValues, LitElement } from 'lit';
import { Size } from '../internal';
import { IconName, IconSVG } from './icons.js';
export type { IconName, IconSVG } from './icons.js';
declare global {
    var _NVE_SSR_ICON_REGISTRY: Record<string, string> | undefined;
}
/**
 * @element nve-icon
 * @since 0.1.3
 * @entrypoint \@nvidia-elements/core/icon
 * @description An icon is a graphic symbol designed to visually show the purpose of an interface element.
 * @cssprop --color
 * @cssprop --width
 * @cssprop --height
 * @slot - Custom SVG content to override the named icon
 * @aria https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img
 */
export declare class Icon extends LitElement {
    #private;
    /**
     * Visual treatment to represent current support status.
     */
    status?: 'warning' | 'danger' | 'success' | 'accent';
    /**
     * Controls the bounding box size of the icon given a t-shirt style value.
     */
    size?: Size | 'xs' | 'xl';
    /**
     * Sets the direction of the icon. Only supported by expand-panel/collapse-panel (horizontal axis) and arrow/caret/chevron icons (4-directions)
     */
    direction?: 'up' | 'down' | 'left' | 'right';
    /**
     * The name of the icon SVG sprite to render.
     */
    name?: IconName;
    private svg;
    static styles: import('lit').CSSResult[];
    static readonly metadata: {
        tag: string;
        version: string;
    };
    static _icons: {
        [key: string]: IconSVG;
    };
    private static get _iconsRegistry();
    private static set _iconsRegistry(value);
    private static get registeredIcon();
    /** @private */
    _internals: ElementInternals;
    render(): import('lit').TemplateResult<1>;
    connectedCallback(): void;
    disconnectedCallback(): void;
    static add(icons: {
        [key: string]: IconSVG;
    }): Promise<void>;
    static alias(aliases: {
        [key: string]: IconName | string;
    }): void;
    updated(props: PropertyValues<this>): Promise<void>;
}
export declare function mergeIcons(RegisteredIcon: typeof Icon): void;
