import * as i0 from '@angular/core';
import { ElementRef, NgZone, EventEmitter } from '@angular/core';
import SynIcon from '@synergy-design-system/components/components/icon/icon.component.js';
import { SynLoadEvent, SynErrorEvent } from '@synergy-design-system/components';
export { SynErrorEvent, SynLoadEvent } from '@synergy-design-system/components';

/**
 * @summary Icons are symbols that can be used to represent various options within an application.
 * @documentation https://synergy-design-system.github.io/?path=/docs/components-syn-icon--docs
 * @status stable
 * @since 1.0.0
 *
 * @event syn-load - Emitted when the icon has loaded. When using `spriteSheet: true` this will not emit.
 * @event syn-error - Emitted when the icon fails to load due to an error. When using `spriteSheet: true` this will not emit.
 *
 * @csspart svg - The internal SVG element.
 * @csspart use - The <use> element generated when using `spriteSheet: true`
 */
declare class SynIconComponent {
    nativeElement: SynIcon;
    private _ngZone;
    constructor(e: ElementRef, ngZone: NgZone);
    /**
     * The name of the icon to draw.
     * Available names depend on the icon library being used.
     */
    set name(v: SynIcon['name']);
    get name(): SynIcon['name'];
    /**
  * An external URL of an SVG file.
  * Be sure you trust the content you are including, as it will be executed as code and
  can result in XSS attacks.
   */
    set src(v: SynIcon['src']);
    get src(): SynIcon['src'];
    /**
  * An alternate description to use for assistive devices.
  * If omitted, the icon will be considered presentational and
  ignored by assistive devices.
   */
    set label(v: SynIcon['label']);
    get label(): SynIcon['label'];
    /**
     * The name of a registered custom icon library.
     */
    set library(v: SynIcon['library']);
    get library(): SynIcon['library'];
    /**
     * Emitted when the icon has loaded.
     * When using `spriteSheet: true` this will not emit.
     */
    synLoadEvent: EventEmitter<SynLoadEvent>;
    /**
     * Emitted when the icon fails to load due to an error.
     * When using `spriteSheet: true` this will not emit.
     */
    synErrorEvent: EventEmitter<SynErrorEvent>;
    static ɵfac: i0.ɵɵFactoryDeclaration<SynIconComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SynIconComponent, "syn-icon", never, { "name": { "alias": "name"; "required": false; }; "src": { "alias": "src"; "required": false; }; "label": { "alias": "label"; "required": false; }; "library": { "alias": "library"; "required": false; }; }, { "synLoadEvent": "synLoadEvent"; "synErrorEvent": "synErrorEvent"; }, never, ["*"], true, never>;
}

export { SynIconComponent };
