import { LitElement } from 'lit';
import '../icon/Icon.js';
export type IconButtonType = 'primary' | 'primary-clear' | 'primary-stroke' | 'secondary' | 'secondary-clear' | 'secondary-stroke' | 'tertiary' | 'tertiary-clear' | 'tertiary-stroke';
export type IconButtonSize = 'sm' | 'md' | 'lg';
declare const IconButton_base: (new (...args: any[]) => import("../../util/TooltipMixin.js").TooltipMixinInterface) & (new (...args: any[]) => import("../../util/EventEmitterMixin.js").EventEmitterMixinInterface) & (new (...args: any[]) => import("../../util/ReadyMixin.js").ReadyMixinInterface) & typeof LitElement;
/**
 * Surfaces the different actions someone can perform in an interface where space is limited.
 *
 * Uses an icon to communicate the action and supports multiple visual types and sizes.
 * Tooltip support is built-in for accessibility in compact layouts.
 *
 * @element btu-icon-button
 *
 * @fires {CustomEvent} btu-icon-button-ready - Fired after first render and initialization
 * @fires {CustomEvent<{name: string | undefined}>} btu-icon-button-click - Fired when the button is clicked
 *
 * @example
 * ```html
 * <btu-icon-button symbol="trash-2" tooltip="Delete" aria-label="Delete item"></btu-icon-button>
 * <btu-icon-button symbol="pencil" type="secondary" size="sm" aria-label="Edit"></btu-icon-button>
 * <btu-icon-button symbol="x" type="primary" destructive aria-label="Remove"></btu-icon-button>
 * ```
 */
export default class IconButton extends IconButton_base {
    /**
     * Optional name for the button which can be used to identify the button in a callback.
     * @attr
     */
    name: string | undefined;
    /**
     * Specifies the type of icon-button, controlling the visual style.
     * @attr
     */
    type: IconButtonType;
    /**
     * Lucide icon symbol.
     * @attr
     */
    symbol: string | undefined;
    /**
     * Specifies the size of icon-button.
     * @attr
     */
    size: IconButtonSize;
    /**
     * Specifies an icon-button will be used to take any destructive action overriding the
     * default color used for the icon-button type with the error color.
     * @attr
     */
    destructive: boolean;
    /**
     * Disables the button, preventing interaction and indicating an inactive state.
     * @attr
     */
    disabled: boolean;
    createRenderRoot(): this;
    willUpdate(changedProperties: Map<string | number | symbol, unknown>): void;
    updated(changedProperties: Map<string | number | symbol, unknown>): void;
    private _relayTooltipAttrs;
    firstUpdated(changedProperties: Map<string | number | symbol, unknown>): void;
    private _handleClick;
    private _buildButtonClasses;
    render(): import("lit-html").TemplateResult<1>;
}
declare global {
    interface HTMLElementTagNameMap {
        'btu-icon-button': IconButton;
    }
}
export {};
//# sourceMappingURL=IconButton.d.ts.map