/**
 * SVG Icon Web Component
 *
 * @element pds-icon
 *
 * @attr {string} icon - Icon name from the sprite sheet
 * @attr {string|number} size - Icon size in pixels or named size (xs, sm, md, lg, xl, 2xl)
 * @attr {string} color - Icon color (CSS color value, default: currentColor)
 * @attr {string} label - Accessible label for the icon (adds role="img")
 * @attr {string} sprite - Override sprite sheet path
 * @attr {number} rotate - Rotation angle in degrees
 * @attr {boolean} no-sprite - Force fallback icon rendering
 * @attr {boolean} morph - Morph the icon when the icon name changes
 *
 * @example
 * <pds-icon icon="house"></pds-icon>
 * <pds-icon icon="gear" size="32"></pds-icon>
 * <pds-icon icon="heart" color="red" label="Favorite"></pds-icon>
 * <pds-icon icon="list" size="lg"></pds-icon>
 */
export class SvgIcon extends HTMLElement {
    static observedAttributes: string[];
    static "__#private@#fallbackIcons": {
        x: string;
        house: string;
        list: string;
        gear: string;
        'magnifying-glass': string;
        info: string;
        'check-circle': string;
        warning: string;
        missing: string;
    };
    static spritePromises: Map<any, any>;
    static inlineSprites: Map<any, any>;
    static externalIconCache: Map<any, any>;
    static externalIconPromises: Map<any, any>;
    static instances: Set<any>;
    static "__#private@#spriteSupport": boolean;
    static "__#private@#detectSpriteSupport"(): boolean;
    /**
     * Get the external icons path from PDS config or use default
     * @private
     * @returns {string} The base path for external SVG icons
     */
    private static getExternalIconPath;
    /**
     * Fetch an external SVG icon and cache it
     * @param {string} iconName - The icon name (without .svg extension)
     * @returns {Promise<boolean>} True if successfully fetched
     */
    static fetchExternalIcon(iconName: string): Promise<boolean>;
    static ensureInlineSprite(spriteURL: any): Promise<any>;
    static notifyInstances(): void;
    _currentIcon: any;
    _pendingIcon: any;
    _morphing: boolean;
    _morphTimer: any;
    _templateReady: boolean;
    _stackEl: Element;
    _svgOldEl: Element;
    _svgNewEl: Element;
    _iconOldGroupEl: Element;
    _iconNewGroupEl: Element;
    connectedCallback(): void;
    disconnectedCallback(): void;
    attributeChangedCallback(name: any, oldValue: any, newValue: any): void;
    render(): void;
    /**
     * Check if sprite sheet is available
     * @method spriteAvailable
     * @public
     * @returns {boolean} True if sprite sheet should be used
     */
    public spriteAvailable(): boolean;
    #private;
}
//# sourceMappingURL=pds-icon.d.ts.map