import { OnInit, OnChanges } from '@angular/core';
/**
 * The possible button types that the directive can work with.
 * @export
 */
export declare type ButtonType = 'primary' | 'inverted' | 'action' | 'text';
/**
 * Tooltip information.
 *
 * @export
 */
export interface TooltipInfo {
    enabled: boolean;
    classes: string[];
}
/**
 * Directive for adding various button related classes to an element. Typically this can be used for adding to the following HTML elements:
 * <pre><code>
 * <button>
 * <a>
 * <input type="button">
 * <input type="submit">
 * </code></pre>
 * @export
 */
export declare class ButtonDirective implements OnInit, OnChanges {
    /**
     * The type of button.
     *
     * @memberof ButtonDirective
     */
    buttonType: ButtonType;
    /**
     * Whether the button is full width.
     *
     * @memberof ButtonDirective
     */
    esFullwidth: false;
    /**
     * Whether the button is to appear as disabled.
     *
     * @memberof ButtonDirective
     */
    esDisabled: false;
    /**
     * Tooltip information.
     * TODO: Perhaps tooltip could be it's own directive, so you would apply both esButton and esTooltip to the
     * button? This is what primeng do.
     *
     * @memberof ButtonDirective
     */
    esTooltip: TooltipInfo;
    /**
     * The CSS classes that will be applied to the host element this directive is on.
     *
     * @protected
     * @memberof ButtonDirective
     */
    protected _elementClass: string[];
    ngOnInit(): void;
    /**
     * Adds or removes the tooltip class whenever the esTooltip property changes.
     *
     * @memberof ButtonDirective
     */
    ngOnChanges(): void;
    /**
     * Gets the elementClass array and joins them into a single string.
     *
     * @readonly
     * @memberof ButtonDirective
     */
    readonly elementClass: string;
}
/**
 * Button module providing anything to do with buttons.
 *
 * @export
 */
export declare class ButtonModule {
}
