import * as _angular_core from '@angular/core';
import * as i1 from '@eui/components/shared';
import { BaseStatesDirective } from '@eui/components/shared';

/**
 * A clickable button component that displays only an icon without text. Provides visual feedback states and supports various sizing and styling options. Commonly used in toolbars, navigation bars, and compact UI layouts where space is limited.
 *
 * @usageNotes
 * ### Basic icon button
 * ```html
 * <eui-icon-button
 *   icon="edit"
 *   ariaLabel="Edit item"
 *   (buttonClick)="onEdit()">
 * </eui-icon-button>
 * ```
 *
 * ### With state variant
 * ```html
 * <eui-icon-button
 *   icon="delete"
 *   euiDanger
 *   size="l"
 *   ariaLabel="Delete item">
 * </eui-icon-button>
 * ```
 *
 * ### Accessibility
 * - Always provide descriptive `ariaLabel` for screen readers
 * - Button is keyboard accessible via Tab and Enter/Space
 * - Focus states are clearly visible
 *
 * ### Notes
 * - Use `hasNoPadding` for compact layouts or icon-only toolbars
 * - Apply `euiRounded` for circular button shape
 * - Set `euiDisabled` to prevent interaction
 * - Choose between `hasFocusHoverColor` and `hasFocusHoverBg` for hover effects
 */
declare class EuiIconButtonComponent {
    protected baseStatesDirective: BaseStatesDirective;
    readonly cssClasses: _angular_core.WritableSignal<string>;
    /**
     * The name of the icon to display from the eUI icon library.
     */
    readonly icon: _angular_core.InputSignal<string>;
    /**
     * URL path to a custom icon image. Used when displaying icons not available in the eUI icon library.
     */
    readonly iconUrl: _angular_core.InputSignal<string>;
    /**
     * CSS color value to apply as the icon fill color. Overrides default theme colors.
     */
    readonly fillColor: _angular_core.InputSignal<string>;
    /**
     * Controls the icon dimensions. Default: 'm'
     */
    readonly size: _angular_core.InputSignal<"2xs" | "xs" | "s" | "m" | "l" | "xl" | "2xl" | "3xl" | "4xl">;
    /**
     * Accessible label for screen readers describing the button's purpose.
     * @default 'eUI Icon button'
     */
    readonly ariaLabel: _angular_core.InputSignal<string>;
    /**
     * Tab order position for keyboard navigation. Set to -1 to remove from tab sequence. Default: 0
     */
    readonly tabindex: _angular_core.InputSignal<number>;
    /**
     * Removes internal padding from the button, allowing the icon to fill the entire button area. Default: false
     */
    readonly hasNoPadding: _angular_core.InputSignalWithTransform<boolean, unknown>;
    /**
     * Enables hover state that expands beyond the button boundaries, typically used in dense layouts. Default: false
     */
    readonly hasOverflowHover: _angular_core.InputSignalWithTransform<boolean, unknown>;
    /**
     * Applies color change on focus and hover states instead of background change. Mutually exclusive with hasFocusHoverBg. Default: false
     */
    readonly hasFocusHoverColor: _angular_core.InputSignalWithTransform<boolean, unknown>;
    /**
     * Applies background color change on focus and hover states. Automatically disabled when hasFocusHoverColor is true. Default: true
     */
    readonly hasFocusHoverBg: _angular_core.InputSignalWithTransform<boolean, unknown>;
    /**
     * Applies rounded corners to the button shape instead of default square corners. Default: false
     */
    readonly euiRounded: _angular_core.InputSignalWithTransform<boolean, unknown>;
    /**
     * Disables the button, preventing interaction and applying disabled styling. Default: false
     */
    readonly euiDisabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
    /**
     * Emitted when the button is clicked. Payload contains the native click Event object.
     */
    readonly buttonClick: _angular_core.OutputEmitterRef<Event>;
    constructor();
    onClick(event: Event): void;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<EuiIconButtonComponent, never>;
    static ɵcmp: _angular_core.ɵɵComponentDeclaration<EuiIconButtonComponent, "eui-icon-button", never, { "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "iconUrl": { "alias": "iconUrl"; "required": false; "isSignal": true; }; "fillColor": { "alias": "fillColor"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "tabindex": { "alias": "tabindex"; "required": false; "isSignal": true; }; "hasNoPadding": { "alias": "hasNoPadding"; "required": false; "isSignal": true; }; "hasOverflowHover": { "alias": "hasOverflowHover"; "required": false; "isSignal": true; }; "hasFocusHoverColor": { "alias": "hasFocusHoverColor"; "required": false; "isSignal": true; }; "hasFocusHoverBg": { "alias": "hasFocusHoverBg"; "required": false; "isSignal": true; }; "euiRounded": { "alias": "euiRounded"; "required": false; "isSignal": true; }; "euiDisabled": { "alias": "euiDisabled"; "required": false; "isSignal": true; }; }, { "buttonClick": "buttonClick"; }, never, ["eui-badge"], true, [{ directive: typeof i1.BaseStatesDirective; inputs: { "euiPrimary": "euiPrimary"; "euiSecondary": "euiSecondary"; "euiSuccess": "euiSuccess"; "euiInfo": "euiInfo"; "euiWarning": "euiWarning"; "euiDanger": "euiDanger"; "euiVariant": "euiVariant"; "euiSizeS": "euiSizeS"; }; outputs: {}; }]>;
}

declare const EUI_ICON_BUTTON: readonly [typeof EuiIconButtonComponent];

export { EUI_ICON_BUTTON, EuiIconButtonComponent };
//# sourceMappingURL=eui-components-eui-icon-button.d.ts.map
