import { EventEmitter, Renderer2, ElementRef } from '@angular/core';
import { BaseStatesDirective } from '@eui/components/shared';
import { BooleanInput } from '@angular/cdk/coercion';
import * as i0 from "@angular/core";
import * as i1 from "@eui/components/shared";
/**
 * @description
 * A versatile button component that supports various states, sizes, and visual styles.
 * Can be used as either a button or anchor element with consistent styling.
 */
export declare class EuiButtonComponent {
    /**
     * @description
     * Computes and returns the CSS classes for the button based on its current state
     *
     * @returns {string} Space-separated string of CSS class names
     */
    get cssClasses(): string;
    /**
     * @description Data attribute for e2e testing
     * @default eui-button
     */
    e2eAttr: string;
    /** @description ID attribute for the button element */
    id: string;
    /**
     * @description When true, applies basic styling without background
     * @default false
     */
    euiBasicButton: boolean;
    /**
     * @description When true, styles the button as a call-to-action
     * @deprecated will be removed in future eUI version and replaced by euiCTAButton
     * @default false
     */
    euiButtonCall: boolean;
    /**
     * @description When true, styles the button as a call-to-action
     * @default false
     */
    euiCTAButton: boolean;
    /**
     * @description When true, makes the button full-width
     * @default false
     */
    euiBlockButton: boolean;
    /**
     * @description When true, styles the button for icon-only content
     * @default false
     */
    euiIconButton: boolean;
    /**
     * @description When true, style the button when used in avatar trigger (for dropdown trigger f.e. see actionable avatar)
     * @default false
     */
    euiAvatarButton: boolean;
    /**
     * @description When true, allows text content to wrap
     * @default false
     */
    euiLineWrap: boolean;
    /**
     * @description When true, applies styling with lower padding / reduced height and width
     * @default false
     */
    isCompact: boolean;
    /**
     * @description When true, applies styling without focus ring
     * @default false
     */
    hasNoFocusRing: boolean;
    /**
     * @description
     * Controls the checked state of the button
     * When true, applies accent styling
     */
    get isChecked(): boolean;
    set isChecked(value: BooleanInput);
    /**
     * @description
     * Controls the disabled state of the button
     * When true, adds the disabled attribute and prevents interaction
     */
    get euiDisabled(): boolean;
    set euiDisabled(value: BooleanInput);
    /**
     * @description
     * Event emitted when the button is clicked
     * Emits the button component instance
     */
    buttonClick: EventEmitter<EuiButtonComponent>;
    baseStatesDirective: BaseStatesDirective;
    protected _renderer: Renderer2;
    protected _elementRef: ElementRef<HTMLButtonElement>;
    private _isChecked;
    private _euiDisabled;
    /**
     * @description
     * Click event handler that emits the buttonClick event
     * @private
     */
    protected onClick(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<EuiButtonComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<EuiButtonComponent, "button[euiButton], a[euiButton]", never, { "e2eAttr": { "alias": "e2eAttr"; "required": false; }; "id": { "alias": "id"; "required": false; }; "euiBasicButton": { "alias": "euiBasicButton"; "required": false; }; "euiButtonCall": { "alias": "euiButtonCall"; "required": false; }; "euiCTAButton": { "alias": "euiCTAButton"; "required": false; }; "euiBlockButton": { "alias": "euiBlockButton"; "required": false; }; "euiIconButton": { "alias": "euiIconButton"; "required": false; }; "euiAvatarButton": { "alias": "euiAvatarButton"; "required": false; }; "euiLineWrap": { "alias": "euiLineWrap"; "required": false; }; "isCompact": { "alias": "isCompact"; "required": false; }; "hasNoFocusRing": { "alias": "hasNoFocusRing"; "required": false; }; "isChecked": { "alias": "isChecked"; "required": false; }; "euiDisabled": { "alias": "euiDisabled"; "required": false; }; }, { "buttonClick": "buttonClick"; }, never, ["*"], true, [{ directive: typeof i1.BaseStatesDirective; inputs: { "euiPrimary": "euiPrimary"; "euiBranding": "euiBranding"; "euiSecondary": "euiSecondary"; "euiSuccess": "euiSuccess"; "euiInfo": "euiInfo"; "euiWarning": "euiWarning"; "euiDanger": "euiDanger"; "euiAccent": "euiAccent"; "euiInverse": "euiInverse"; "euiVariant": "euiVariant"; "euiSizeS": "euiSizeS"; "euiSizeM": "euiSizeM"; "euiSizeL": "euiSizeL"; "euiSizeVariant": "euiSizeVariant"; "euiOutline": "euiOutline"; "euiRounded": "euiRounded"; "euiResponsive": "euiResponsive"; "euiStart": "euiStart"; "euiEnd": "euiEnd"; }; outputs: {}; }]>;
    static ngAcceptInputType_euiBasicButton: unknown;
    static ngAcceptInputType_euiButtonCall: unknown;
    static ngAcceptInputType_euiCTAButton: unknown;
    static ngAcceptInputType_euiBlockButton: unknown;
    static ngAcceptInputType_euiIconButton: unknown;
    static ngAcceptInputType_euiAvatarButton: unknown;
    static ngAcceptInputType_euiLineWrap: unknown;
    static ngAcceptInputType_isCompact: unknown;
    static ngAcceptInputType_hasNoFocusRing: unknown;
}
/**
 * @description
 * Module that provides the EuiButton component.
 *
 * @deprecated Use {@link EUI_BUTTON} instead
 */
export declare class EuiButtonModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<EuiButtonModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<EuiButtonModule, never, [typeof EuiButtonComponent], [typeof EuiButtonComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<EuiButtonModule>;
}
//# sourceMappingURL=eui-button.component.d.ts.map