/**
 * @license
 * Copyright 2025 Sandlada & Kai Orion
 * SPDX-License-Identifier: MIT
 */
import { LitElement, type PropertyValues } from 'lit';
import type { IIcon } from './icon.interface';
declare global {
    interface HTMLElementTagNameMap {
        "mdc-icon": MDCIcon;
    }
}
declare const MDCIcon_base: Omit<typeof LitElement, "prototype"> & (new () => LitElement & object);
/**
 * mdc-icon sets the size and font by default.
 *
 * If you use an external font, the global style of the external font
 * will override the style of `@layer` mdc.icon.base.
 *
 * Because the priority of `@layer` style is lower than that of global style,
 * you need to manually cancel the font size of the external style
 * to make the font style of mdc-icon take effect.
 *
 * The following code example shows an icon send
 * modified.
 * You must set `style="font-size: 18px"` to change the mdc-icon icon size.
 *
 * @example
 * ```html
 * <mdc-button>
 *     <span>Filled Button with Icon</span>
 *     <mdc-icon slot="icon" name="send" style="font-size: 14px;"></mdc-icon>
 * </mdc-button>
 * ```
 * @version
 * Material Design 3 - MaterialSymbols Supported
 *
 * @link
 * https://m3.material.io/styles/icons/overview
 */
export declare class MDCIcon extends MDCIcon_base implements IIcon {
    static styles: import("lit").CSSResult;
    /**
     * The name of the icon (ligature text).
     * Recommended over slot content for dynamic icons.
     */
    name: string | undefined;
    /**
     * Material Symbols: Fill axis (0 or 1).
     */
    filled: boolean;
    /**
     * Material Symbols: Weight axis (100-700).
     * Default is 400.
     */
    weight: number;
    /**
     * Material Symbols: Grade axis (-25, 0, 200).
     * Granular weight adjustments.
     */
    grade: number;
    /**
     * Material Symbols: Optical Size axis (20-48).
     * Adjusts stroke thickness based on icon size.
     */
    opticalSize: number;
    protected render(): import("lit-html").TemplateResult<1>;
    connectedCallback(): void;
    protected updated(changedProperties: PropertyValues): void;
    /**
     * Intelligently manages aria-hidden.
     * Default to hidden (decorative), but reveal if labeled (semantic).
     */
    private updateAriaState;
}
export {};
//# sourceMappingURL=icon.d.ts.map