import { type CSSResultGroup, type HTMLTemplateResult } from 'lit'; import { ShoelaceElement } from '../../internal/shoelace-element'; import type { GraphicElementName } from './graphic-element.library'; /** * @summary Graphic elements can be used as decorative icons. * @documentation * * @event dsa-load - Emitted when the graphic element has loaded. * @event dsa-error - Emitted when the graphic element fails to load due to an error. * */ export default class DSAGraphicElement extends ShoelaceElement { static styles: CSSResultGroup; private initialRender; /** Given a URL, this function returns the resulting SVG element or an appropriate error symbol. */ private resolveIcon; private svg; /** The name of the icon to draw. Available names depend on the icon library being used. */ name: GraphicElementName | ''; /** The graphic element's theme variant. */ variant: 'on-base' | 'on-light-brand' | 'on-contrasted-brand' | 'on-purple-background'; firstUpdated(): void; setIcon(): Promise; render(): SVGElement | HTMLTemplateResult | null; } declare global { interface HTMLElementTagNameMap { 'dsa-graphic-element': DSAGraphicElement; } }