import { AfterViewInit, ElementRef, EventEmitter, OnInit, TemplateRef } from '@angular/core';
import * as i0 from "@angular/core";
/**
 * "Submit" button type is deprecated. Use the isSubmit input instead.
 * This allows you to make any button type a submit button.
 *
 * "Link" button type is deprecated. Use the LinkButtonComponent instead.
 */
export type ButtonType = "primary" | "secondary" | "common" | "icon" | "link" | "text" | "submit" | "danger" | "danger-text";
export declare class ButtonComponent implements OnInit, AfterViewInit {
    /**
     * Id to set
     */
    id?: string;
    /**
     * Is the button disabled?
     */
    disabled?: boolean;
    /**
     * The icon class for a button that has an image
     */
    icon?: string;
    /**
     * The text on the button
     */
    label?: string;
    /**
     * Text to place in a badge to the right of the button
     */
    badge?: string | number;
    /**
     * The tabindex of the control
     */
    tabindex?: number;
    /**
     * The type of button
     */
    type?: ButtonType;
    /**
     * The pending status of the control, can be used to provide feedback to the user that something is in process or (in combination with `[pendingIcon]`) some other status, e.g success.
     */
    pending?: boolean;
    /** The icon to display when the button is in the pending state. Defaults to 'icon-ui-loading' */
    pendingIcon: string;
    /**
     * Provide a custom template for the button. This will override icon, label and badge
     * if specified. Focus, hover and disabled styles still apply.
     */
    customTemplate?: TemplateRef<any>;
    /**
     * If true, the button element's type will be set to submit so that hitting "enter"
     * on a form will trigger the button's action.
     */
    isSubmit?: boolean;
    /** Focuses the button on init when set to true */
    autofocus: boolean;
    /**
     * Emit an event when the button element is clicked (not the icon)
     */
    clicked: EventEmitter<any>;
    buttonElement: ElementRef;
    constructor();
    /**
     * Ensure label or icon is set
     *
     */
    ngOnInit(): void;
    ngAfterViewInit(): void;
    /**
     * Event handler for click event on the button element.
     * Blur the button so focus style does not persist
     *
     */
    onClick(event: any): void;
    focus(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<ButtonComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ButtonComponent, "ec-button", never, { "id": { "alias": "id"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "label": { "alias": "label"; "required": false; }; "badge": { "alias": "badge"; "required": false; }; "tabindex": { "alias": "tabindex"; "required": false; }; "type": { "alias": "type"; "required": false; }; "pending": { "alias": "pending"; "required": false; }; "pendingIcon": { "alias": "pendingIcon"; "required": false; }; "customTemplate": { "alias": "customTemplate"; "required": false; }; "isSubmit": { "alias": "isSubmit"; "required": false; }; "autofocus": { "alias": "autofocus"; "required": false; }; }, { "clicked": "clicked"; }, never, never, false, never>;
}
