import { VegaNotifyOption } from './vega-notify';
import { PageResizeObserverSlimmer } from '../slimmers/page-resize-observer-slimmer';
import { VegaPublicAPIRuntimeMetricsSlimmerBase } from '../slimmers/runtime-metrics/public-api-runtime-metrics-slimmer-base';
/**
 * The page notification controller
 */
declare class VegaNotifyController {
  protected readonly resizeObserverSlimmer: PageResizeObserverSlimmer;
  protected vegaPublicAPIRuntimeMetricsSlimmer: VegaPublicAPIRuntimeMetricsSlimmerBase;
  private container;
  /**
   * It creates a new notification element, adds it to the container, and returns the notification's ID
   *
   * @param {VegaNotifyOption} options - VegaNotifyProps
   * @returns {Promise<string>} The ID of the notification.
   * @vegaVersion 1.17.0
   */
  open(options: VegaNotifyOption): Promise<string>;
  /**
   * It closes all notifications
   *
   * @vegaVersion 1.17.0
   */
  closeAll(): Promise<void>;
  /**
   * It closes the notification with the given id
   *
   * @param {string} id - The id of the notification to close.
   * @vegaVersion 1.17.0
   */
  close(id: string): Promise<void>;
  /**
   * The function "connectResizeObserver" is used to connect a resize observer.
   *
   * @vegaVersion 1.17.0
   */
  connectResizeObserver(): void;
  /**
   * It creates a new page notification element, sets its properties, and returns it
   *
   * @param {VegaNotifyOption} props - VegaNotifyProps - the properties of the notification
   * @returns {HTMLVegaPageNotificationElement} A function that takes in a props object and returns a pageNotification element.
   */
  private createPageNotification;
  /**
   * It creates a div element, sets its z-index to be on top of everything else, adds a class to it, and
   * then adds it to the body of the page
   *
   * @returns {HTMLVegaPageNotificationListElement} The container is being returned.
   */
  private getContainer;
}
export declare const VegaNotify: VegaNotifyController;
export {};
