/**
 * @license
 * Copyright 2025 Kai-Orion & Sandlada
 * SPDX-License-Identifier: MIT
 */
import { LitElement, type TemplateResult } from 'lit';
declare const BaseMDCIconButton_base: Omit<typeof LitElement, "prototype"> & (new () => LitElement & object & import("../../utils/behaviors/element-internals").WithElementInternals & import("../ripple/ripple-options.mixin").IMixinRippleOptions & import("../ripple/ripple-options.mixin").IMixinRippleAttributes & import("../focus-ring/focus-ring-options.mixin").IMixinFocusRingOption);
/**
 * The icon-button component only supports inserting one icon.
 *
 * @implements
 * - mdc-icon-button
 * - mdc-toggle-icon-button
 *
 * @version
 * Material Design 3 - Expressive
 *
 * @link
 * https://m3.material.io/components/icon-buttons/specs
 */
export declare abstract class BaseMDCIconButton extends BaseMDCIconButton_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';
    /**
     * When a button is clicked,
     * the rounded corners of the button will change in size.
     * Enable this flag to disable the change in rounded corners.
     */
    disableMorph: boolean;
    protected readonly buttonElement: HTMLElement | null;
    focus(): void;
    blur(): void;
    get focusRingControl(): HTMLElement | null;
    get rippleControl(): HTMLElement | null;
    constructor();
    protected getRenderClasses(): {
        [x: string]: boolean;
        container: boolean;
        disabled: boolean;
        'disable-morph': boolean;
    };
    get focusRingHtmlFor(): string | null;
    get rippleHtmlFor(): string | null;
    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>;
    protected readonly handleVisualFocusIn: () => void;
    protected readonly handleVisualFocusOut: () => void;
    protected readonly handleVisualKeyDown: (event: KeyboardEvent) => void;
    private shouldShowKeyboardVisuals;
    private queueKeyboardVisualSync;
    private clearKeyboardVisuals;
}
export {};
//# sourceMappingURL=base-icon-button.d.ts.map