import { EventEmitter, OnInit, ElementRef, SimpleChanges, OnChanges, TemplateRef } from '@angular/core';
/**
 * "Submit" button type is deprecated. Use the isSubmit input instead.
 * This allows you to make any button type a submit button.
 */
export declare type ButtonType = "primary" | "secondary" | "common" | "icon" | "link" | "text" | "submit" | "danger" | "danger-text";
export declare class ButtonComponent implements OnInit, OnChanges {
    /**
     * Binds the component's id attribute to the input
     */
    attrId?: string;
    /**
     * 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 tell the user the control is
     * awaiting via a spinner or animation
     */
    pending?: boolean;
    /**
     * 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;
    /**
     * Emit an event when the button element is clicked (not the icon)
     */
    clicked: EventEmitter<any>;
    protected buttonElement: ElementRef;
    constructor();
    /**
     * Ensure label or icon is set
     *
     */
    ngOnInit(): void;
    ngOnChanges(changes: SimpleChanges): 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;
}
