/**
 * @license
 * Copyright 2025 Kai-Orion & Sandlada
 * SPDX-License-Identifier: MIT
 */
import { LitElement, type TemplateResult } from 'lit';
declare const BaseIconButton_base: import("../../utils/behaviors/mixin").MixinReturn<import("../../utils/behaviors/mixin").MixinReturn<typeof LitElement, import("../../utils/behaviors/element-internals").WithElementInternals>>;
/**
 * The icon-button component only supports inserting one icon.
 *
 * Provides 2 components:
 * - mdc-icon-button
 * - mdc-toggle-icon-button
 *
 * It is available in variants:
 * - filled
 * - filled-tonal
 * - outlined
 * - standard
 *
 * It is available in 5 sizes:
 * - extra-small
 * - small
 * - medium
 * - large
 * - extra-large
 *
 * It is available in 3 widths:
 * - narrow
 * - default (default)
 * - wide
 *
 * It is available in 2 shapes:
 * - round (default)
 * - square
 *
 * @version
 * Material Design 3 - Expressive
 *
 * @link
 * https://m3.material.io/components/icon-buttons/specs
 */
export declare abstract class BaseIconButton extends BaseIconButton_base {
    static styles: import("lit").CSSResult[];
    abstract disabled: boolean;
    variant: 'filled' | 'filled-tonal' | 'outlined' | 'standard';
    size: 'extra-small' | 'small' | 'medium' | 'large' | 'extra-large';
    width: 'narrow' | 'default' | 'wide';
    shape: 'round' | 'square';
    disableMorph: boolean;
    protected readonly buttonElement: HTMLElement | null;
    focus(): void;
    blur(): void;
    constructor();
    protected getRenderClasses(): {
        [x: string]: boolean;
        container: boolean;
        disabled: boolean;
        'disable-morph': boolean;
    };
    protected render(): TemplateResult;
    protected renderBackground: () => TemplateResult<1>;
    protected renderOutline: () => TemplateResult<1>;
    protected renderIcon: () => TemplateResult<1>;
    protected renderTouchTarget(): TemplateResult<1>;
    protected handleClick(e: MouseEvent): Promise<void>;
}
export {};
//# sourceMappingURL=base-icon-button.d.ts.map