import { LitElement } from 'lit';
import '../circular-progress/CircularProgress.js';
import '../icon/Icon.js';
type ActionItemVariant = 'primary' | 'secondary' | 'tertiary' | 'destructive';
declare const ActionItem_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;
/**
 * An action item button for use within `btu-action-bar`.
 *
 * Renders a styled button using existing `btu-button-*` classes. Supports
 * primary, secondary, tertiary, and destructive variants. When `iconOnly`
 * is set, the label is hidden and a tooltip is shown instead.
 *
 * **Button styling:** Set `--button-*` CSS custom properties on `<btu-action-item>`
 * or a parent element to customize via CSS inheritance. See
 * `tailwind-plugin-button.ts` for available props.
 *
 * @element btu-action-item
 *
 * @fires {CustomEvent<{label: string}>} btu-action-item-click - Fired when the action item is clicked (not fired when disabled or loading)
 *
 * @cssprop --button-color - Override button background color
 * @cssprop --button-text-color - Override button text color
 * @cssprop --button-border-radius - Override button border radius
 *
 * @example
 * ```html
 * <btu-action-item variant="primary" label="Save Changes"></btu-action-item>
 * <btu-action-item variant="destructive" label="Delete" symbol="trash-2"></btu-action-item>
 * <btu-action-item variant="secondary" label="Settings" symbol="settings" icon-only></btu-action-item>
 * ```
 */
export default class ActionItem extends ActionItem_base {
    /**
     * Button label text.
     * @attr
     */
    label: string;
    /**
     * Visual variant: 'primary', 'secondary', 'tertiary', 'destructive'.
     * @attr
     */
    variant: ActionItemVariant;
    /**
     * Lucide icon symbol for the leading icon.
     * @attr
     */
    symbol: string;
    /**
     * Show icon only, hiding the label. Tooltip activates automatically with the label text.
     * @attr icon-only
     */
    iconOnly: boolean;
    /**
     * Disables the action item. The button remains focusable for accessibility
     * but click events are suppressed.
     * @attr
     */
    disabled: boolean;
    /**
     * Shows a loading spinner and prevents interaction.
     * @attr
     */
    loading: boolean;
    /**
     * Zone placement: 'start' or 'end'. Used by ActionBar for two-zone layout.
     * If unset, auto-detected from variant (destructive → start, others → end).
     * @attr
     */
    zone: 'start' | 'end' | '';
    /**
     * Opt-in for progressive label compacting. When the parent bar has `compact`
     * enabled and space shrinks, compactable items with icons have their labels
     * hidden one-by-one (least important first) before overflowing.
     * Items without an icon ignore this attribute and go directly to overflow.
     * @attr
     */
    compactable: boolean;
    /** @internal - Roving tabindex value set by parent ActionBar */
    private _tabindex;
    /** @internal - Whether the label is compacted by ActionBar's progressive compacting */
    private _collapsed;
    createRenderRoot(): this;
    /** @internal - Called by parent ActionBar to configure roving tabindex and compact state */
    _configure(options: {
        tabindex: number;
        collapsed: boolean;
    }): void;
    updated(changedProperties: Map<string | number | symbol, unknown>): void;
    private _relayTooltipAttrs;
    firstUpdated(): void;
    private _handleClick;
    private _getSpinnerColor;
    private _buildButtonClasses;
    private _getButtonStyles;
    render(): import("lit-html").TemplateResult<1>;
}
declare global {
    interface HTMLElementTagNameMap {
        'btu-action-item': ActionItem;
    }
}
export {};
//# sourceMappingURL=ActionItem.d.ts.map