import { PropertyValues } from 'lit'; import { SpectrumElement } from '../../element/index.js'; import { ICON_VALID_SIZES } from './Icon.types.js'; declare const IconBase_base: typeof SpectrumElement & { new (...args: any[]): import('../../mixins/index.js').SizedElementInterface; prototype: import('../../mixins/index.js').SizedElementInterface; } & import('../../mixins/index.js').SizedElementConstructor; /** * Shared behavior for icon elements: the `size` scale, the `accessibleLabel`, and * host-owned accessibility. Concrete elements own their own `render()` and styles; * this base carries no template and no CSS. * * The host owns semantics: when `accessibleLabel` is set the host is exposed as an * image (`role="img"` with that label); when empty (the default) the host is marked * `aria-hidden` and the icon is decorative. The rendered or slotted SVG is never * given its own role, avoiding double-announcement. * * @attribute {string} accessible-label - Accessible label for the icon. * @attribute {string} size - T-shirt icon size. */ export declare abstract class IconBase extends IconBase_base { /** * T-shirt icon size. * * @default m */ size: (typeof ICON_VALID_SIZES)[number]; /** * Accessible label for the icon. When empty the icon is decorative. */ accessibleLabel: string; protected firstUpdated(changedProperties: PropertyValues): void; protected updated(changedProperties: PropertyValues): void; private updateHostAccessibility; } export {};