import { Icon } from '../../global/shared-types/icon.types';
/**
 * @exampleComponent limel-example-button-basic
 * @exampleComponent limel-example-button-primary
 * @exampleComponent limel-example-button-outlined
 * @exampleComponent limel-example-button-disabled
 * @exampleComponent limel-example-button-icon
 * @exampleComponent limel-example-button-loading
 * @exampleComponent limel-example-button-click-success
 * @exampleComponent limel-example-button-click-fail
 * @exampleComponent limel-example-button-reduce-presence
 * @exampleComponent limel-example-button-colors
 * @exampleComponent limel-example-button-composite
 */
export declare class Button {
  /**
   * The text to show on the button.
   */
  label: string;
  /**
   * Set to `true` to make the button primary.
   */
  primary: boolean;
  /**
   * Set to `true` to make the button outlined.
   */
  outlined: boolean;
  /**
   * Set icon for the button
   */
  icon: string | Icon;
  /**
   * Set to `true` to disable the button.
   */
  disabled: boolean;
  /**
   * Set to `true` to put the button in the `loading` state.
   * This also disables the button.
   */
  loading: boolean;
  /**
   * Set to `true` to indicate failure instead of success when the button is
   * no longer in the `loading` state.
   */
  loadingFailed: boolean;
  private justLoaded;
  private host;
  private justLoadedTimeout?;
  componentWillLoad(): void;
  disconnectedCallback(): void;
  render(): any;
  protected loadingWatcher(newValue: boolean, oldValue: boolean): void;
  private hasFinishedLoading;
  private handleLoadingFinished;
  private handleLoadingStarted;
  private renderLoadingIcons;
  private renderIcon;
  private renderLabel;
  private renderSpinner;
  private filterClickWhenDisabled;
}
//# sourceMappingURL=button.d.ts.map