import { ElementRef, Renderer } from '@angular/core';
import { Config } from '../../config/config';
/**
  * @name Button
  * @module ionic
  *
  * @description
  * Buttons are simple components in Ionic. They can consist of text and icons
  * and be enhanced by a wide range of attributes.
  *
  * @property [outline] - A transparent button with a border.
  * @property [clear] - A transparent button without a border.
  * @property [round] - A button with rounded corners.
  * @property [block] - A button that fills its parent container with a border-radius.
  * @property [full] - A button that fills its parent container without a border-radius or borders on the left/right.
  * @property [small] - A button with size small.
  * @property [large] - A button with size large.
  * @property [disabled] - A disabled button.
  * @property [fab] - A floating action button.
  * @property [fab-left] - Position a fab button to the left.
  * @property [fab-right] - Position a fab button to the right.
  * @property [fab-center] - Position a fab button towards the center.
  * @property [fab-top] - Position a fab button towards the top.
  * @property [fab-bottom] - Position a fab button towards the bottom.
  * @property [fab-fixed] - Makes a fab button have a fixed position.
  * @property [color] - Dynamically set which predefined color this button should use (e.g. primary, secondary, danger, etc).
  *
  * @usage
  *
  * ```html
  *
  *  <!-- Colors -->
  *  <button ion-button>Default</button>
  *
  *  <button ion-button color="secondary">Secondary</button>
  *
  *  <button ion-button color="danger">Danger</button>
  *
  *  <button ion-button color="light">Light</button>
  *
  *  <button ion-button color="dark">Dark</button>
  *
  *  <!-- Shapes -->
  *  <button ion-button full>Full Button</button>
  *
  *  <button ion-button block>Block Button</button>
  *
  *  <button ion-button round>Round Button</button>
  *
  *  <button ion-button fab>FAB</button>
  *
  *  <!-- Outline -->
  *  <button ion-button full outline>Outline + Full</button>
  *
  *  <button ion-button block outline>Outline + Block</button>
  *
  *  <button ion-button round outline>Outline + Round</button>
  *
  *  <button ion-button fab outline>FAB</button>
  *
  *  <!-- Icons -->
  *  <button ion-button icon-left>
  *    <ion-icon name="star"></ion-icon>
  *    Left Icon
  *  </button>
  *
  *  <button ion-button icon-right>
  *    Right Icon
  *    <ion-icon name="star"></ion-icon>
  *  </button>
  *
  *  <button ion-button icon-only>
  *    <ion-icon name="star"></ion-icon>
  *  </button>
  *
  *  <!-- Sizes -->
  *  <button ion-button large>Large</button>
  *
  *  <button ion-button>Default</button>
  *
  *  <button ion-button small>Small</button>
  * ```
  *
  * @demo /docs/v2/demos/button/
  * @see {@link /docs/v2/components#buttons Button Component Docs}
 */
export declare class Button {
    private _elementRef;
    private _renderer;
    /** @internal */
    _role: string;
    /** @internal */
    _mt: boolean;
    /** @internal */
    _size: string;
    /** @internal */
    _style: string;
    /** @internal */
    _shape: string;
    /** @internal */
    _display: string;
    /** @internal */
    _color: string;
    /** @internal */
    _disabled: boolean;
    /** @internal */
    _init: boolean;
    /**
     * @input {string} Large button.
     */
    large: boolean;
    /**
     * @input {string} Small button.
     */
    small: boolean;
    /**
     * @input {string} Default button.
     */
    default: boolean;
    /**
     * @input {string} A transparent button with a border.
     */
    outline: boolean;
    /**
     * @input {string} A transparent button without a border.
     */
    clear: boolean;
    /**
     * @input {string} Force a solid button. Useful for buttons within an item.
     */
    solid: boolean;
    /**
     * @input {string} A button with rounded corners.
     */
    round: boolean;
    /**
     * @input {string} A floating action button.
     */
    fab: boolean;
    /**
     * @input {string} A button that fills its parent container with a border-radius.
     */
    block: boolean;
    /**
     * @input {string} A button that fills its parent container without a border-radius or borders on the left/right.
     */
    full: boolean;
    _attr(type: string, attrName: string, attrValue: boolean): void;
    /**
     * @input {string} Dynamically set which predefined color this button should use (e.g. primary, secondary, danger, etc).
     */
    color: string;
    constructor(menuToggle: string, ionButton: string, config: Config, _elementRef: ElementRef, _renderer: Renderer);
    /**
     * @private
     */
    ngAfterContentInit(): void;
    /**
     * @internal
     */
    _updateColor(newColor: string): void;
    /**
     * @private
     */
    addClass(className: string): void;
    /**
     * @private
     */
    setRole(val: string): void;
    /**
     * @internal
     */
    _assignCss(assignCssClass: boolean): void;
    /**
     * @internal
     */
    _setClass(type: string, assignCssClass: boolean): void;
    /**
     * @internal
     */
    _setColor(color: string, isAdd: boolean): void;
}
