import { Nullable } from '../../types/general';
/**
 * This class is used to track the nested level of a component
 * by using the target element and tracking element selector
 *
 * @property {Map<HTMLElement,{string:number}>} map used to record the nesting level
 */
declare class ComponentNestedLevelTracker {
  private map;
  /**
   * If the element matches the selector, then set the level of the element to the level of the parent element + 1
   *
   * @param {HTMLElement} el - HTMLElement
   * @param {string} selector - The selector of the card that is being nested.
   * @returns {Nullable<number>} The nested level of the element.
   */
  setNestedLevel(el: HTMLElement, selector: string): Nullable<number>;
  /**
   * Given an element and a selector, return the nested level of that selector
   *
   * @param {HTMLElement} el - HTMLElement
   * @param {string} selector - The selector to look for.
   * @returns {Nullable<number>} The nullable number of nested levels of the element.
   */
  getNestedLevel(el: HTMLElement, selector: string): Nullable<number>;
  /**
   * Set the level of a selector for a given element
   *
   * @param {HTMLElement} el - HTMLElement
   * @param {string} selector - The selector for the element.
   * @param {number} level - The level of the element.
   */
  private setLevelToMap;
}
declare const _default: ComponentNestedLevelTracker;
export default _default;
