import { ElementRef, OnChanges, OnDestroy, OnInit } from '@angular/core';
import { CssClassBuilder, HasElementRef } from '@fundamental-ngx/cdk/utils';
import { ContentDensityObserver } from '@fundamental-ngx/core/content-density';
import { BaseButton } from './base-button';
import * as i0 from "@angular/core";
/**
 * Button directive, used to enhance standard HTML buttons.
 *
 * ``` selector: button[fd-button], a[fd-button] ```
 *
 * ```html
 * <button fd-button label="Button Text"></button>
 * <a fd-button label="Button Text"></a>
 * ```
 */
export declare class ButtonComponent extends BaseButton implements OnChanges, CssClassBuilder, OnInit, OnDestroy, HasElementRef {
    readonly elementRef: ElementRef;
    /** The property allows user to pass additional css classes. */
    class: string;
    /** @hidden */
    specialButtonType: Array<string>;
    /**
     * Calculate aria-label attribute
     * @hidden
     */
    buttonArialabel: import("@angular/core").Signal<any>;
    /**
     * Calculate aria-description attribute
     * @hidden
     */
    buttonAriaDescription: import("@angular/core").Signal<string | null | undefined>;
    /** @hidden */
    private _subscriptions;
    /** @hidden */
    constructor(elementRef: ElementRef, _contentDensityObserver: ContentDensityObserver);
    /** Forces the focus outline around the button, which is not default behavior in Safari. */
    clicked(event: MouseEvent): void;
    /** @hidden
     * CssClassBuilder interface implementation
     * function must return single string
     * function is responsible for order which css classes are applied
     */
    buildComponentCssClass(): string[];
    /** Function runs when component is initialized
     * function should build component css class
     * function should build css style
     */
    ngOnChanges(): void;
    /** @hidden */
    ngOnInit(): void;
    /** @hidden */
    ngOnDestroy(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<ButtonComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ButtonComponent, "button[fd-button], a[fd-button], span[fd-button]", ["fd-button"], { "class": { "alias": "class"; "required": false; }; }, {}, never, ["*", "fd-button-badge"], true, never>;
}
