import { ZIndexBasicValues } from './vega-z-index-manager';
export declare const BASE_BASIC_Z_INDEX: number;
export declare const TOP_BASIC_Z_INDEX: number;
export declare type ZIndexLevelType = 'base' | 'top';
/**
 * Base level is for custom element such as modal, tooltip, dropdown, sidenav and header.
 * 	the z-index of current showing element is highly than already show.
 * Top level is for element that always display to top, such as notification.
 */
declare class InternalVegaZIndexManager {
  private baseBasicZIndex;
  private topBasicZIndex;
  private levelEntry;
  /**
   * "If the element is not already the current element, then increment the z-index and set the element
   * to the current element."
   *
   * The function is a little more complicated than that, but not much. The function takes an element and
   * a level. The level is optional and defaults to 'base'. The level is used to keep track of the
   * z-index for each level. The function uses a private variable, levelStatus, to keep track of the
   * current element and z-index for each level
   *
   * @param {HTMLElement} element - The element to set the z-index of.
   * @param {ZIndexLevelType} [level=base] - The level of the element.
   * @returns {void}
   */
  setZIndex(element: HTMLElement | null, level?: ZIndexLevelType): void;
  /**
   * It removes the element from the level's array of elements, and then decrements the z-index of all
   * elements after the removed element
   *
   * @param {HTMLElement} element - HTMLElement - The element to move
   * @param {ZIndexLevelType} [level=base] - Level = 'base'
   * @returns {void}
   */
  removeZIndex(element: HTMLElement | null, level?: ZIndexLevelType): void;
  /**
   * The function "overrideZIndexBasicValues" updates the base and top basic z-index values based on the
   * input provided.
   *
   * @param {ZIndexBasicValues} input - The input parameter is of type ZIndexBasicValues, which is an
   * object with two properties: base and top. Both properties are optional and can be either a number or
   * undefined.
   */
  overrideZIndexBasicValues(input: ZIndexBasicValues): void;
  /**
   * The function `formatZIndexBasicValues` takes an input object and returns a new object with additional
   * properties `base` and `top` added to it.
   *
   * @param {ZIndexBasicValues} input - The input parameter is of type ZIndexBasicValues. It is an object
   * that contains properties for base and top.
   * @returns {ZIndexBasicValues} - an object that combines the properties of the input object `input` with the properties
   * `base` and `top`. The values of `base` and `top` are taken from the `this.baseBasicZIndex` and
   * `this.topBasicZIndex` variables respectively.
   */
  private formatZIndexBasicValues;
  /**
   * The function checks if the input values for base and top levels of a z-index are valid.
   *
   * @param {ZIndexBasicValues} input - The input parameter is an object of type ZIndexBasicValues. It
   * has two properties: base and top. Both properties should be of type number.
   * @returns {boolean} a boolean value.
   */
  private validBasicValues;
  /**
   * The function updates the z-index values of elements based on the input values.
   *
   * @param {ZIndexBasicValues} input - The input parameter is an object of type ZIndexBasicValues. It
   * has two properties: base and top, both of which are optional and can be of type number.
   */
  private updateBasicValues;
  /**
   * It increases the z-index of all the elements in the top entry by 1
   *
   * @returns {void}
   */
  private increaseTopEntry;
  /**
   * If the z-index of the level is over 1000 greater than the basic z-index of the level, then return
   * true.
   *
   * @returns {boolean} - The zIndexEntry.zIndex - this.getBasicZIndexByLevel(level) >= 1000 is being returned.
   */
  private isBaseLevelOver;
}
declare const _default: InternalVegaZIndexManager;
export default _default;
