/// <reference types="node" />
import { EventEmitter } from '../../stencil-public-runtime';
import { JSX } from '../../stencil-public-runtime';
/**
 * Outputs a toast for informing users of a process (either success or failure) that an app has
 * performed or will perform.
 * @docsPage
 */
export declare class BsToast {
  /** Unique toast ID. Used for identifying the toast during action/dismiss event emits. */
  /** @ex toast-id */
  toastId: string;
  /** Whether or not the toast is shown. When this value flips from `true` to `false`,
   * the dismiss animation will play */
  shown?: boolean;
  /** Controls the color/icon of the toast. */
  variant?: 'warning' | 'positive' | 'negative';
  /** Title text shown on the toast. */
  /** @ex Toast Title */
  toastTitle: string;
  /** Text content of the toast. */
  content?: string;
  /** Whether or not this toast is stacked with other toasts within a `toaster` component */
  stacked: boolean;
  /** Duration of the toast on the screen in milliseconds. Defaults to 10 seconds. Provide `0`
   * for this property to never auto-dismiss the toast. */
  duration: number;
  /** Primary action name and display text. This will be the top-most / right-most button on
   * mobile / non-mobile screens respectively. Defaults to `'Dismiss'`. */
  primaryAction: string;
  /** Determines primary action button display. An `undefined` value makes this a filled-in button style.
   * Defaults to `'text'`. */
  primaryActionType: 'text' | 'ghost' | 'primary';
  /** Secondary action name and display text. This will be the middle button on
   * both mobile and non-mobile screens. */
  secondaryAction?: string;
  /** Determines secondary action button display. An `undefined` value makes this a filled-in button style.
   * Defaults to `'text'`. */
  secondaryActionType?: 'text' | 'ghost' | 'primary';
  /** Tertiary action name and display text. This will be the bottom-most / left-most button on
   * mobile / non-mobile screens respectively. */
  tertiaryAction?: string;
  /** Determines tertiary action button display. An `undefined` value makes this a filled-in button style.
   * Defaults to `'text'`. */
  tertiaryActionType: 'text' | 'ghost' | 'primary';
  /** Determines which of the actions should trigger toast dismissal. Defaults to `'Dismiss`'. */
  dismissAction: string;
  isShown: boolean;
  isDismissed: boolean;
  /** Emits when the `dismiss-action` button is clicked or the toast dismisses automatically after
   * the `duration`. Event will have details in format &lt;toastId&gt;::&lt;dismissed&gt;. */
  dismiss: EventEmitter<string>;
  /** Emits when any of the action buttons (aside from `dismiss-action` button) are clicked.
   * Event will have details in format &lt;toastId&gt;::&lt;action&gt;. */
  actionclick: EventEmitter<string>;
  timer: NodeJS.Timeout;
  /** Set internal shown / dismissed state to prop value */
  onShownChange(newVal: boolean, oldVal: boolean): void;
  /** Initially sets internal states based on prop value */
  componentWillLoad(): void;
  /** Clear the dismiss timer to prevent unnecessary side-effects */
  clearTimer(): void;
  /** Handles dismissal action */
  handleDismiss(): void;
  /** Handle auto-dismissal of the toast when applicable */
  componentDidRender(): void;
  /** Get icon based on variant */
  getIcon(): JSX.Element;
  /** Handles different actions on button click */
  handleButtonClick(action: string): void;
  /** Builds a button based on button type */
  getButton(action: string, type: 'text' | 'ghost' | 'primary'): JSX.Element;
  render(): any;
}
