import { VegaSlimmer } from '../../../vega-slimmer/vega-slimmer-core';
import { MutationFilter } from './mutation-observer-filters';
export declare type MutationObserverEntry = {
  target?: () => HTMLElement;
  options: MutationObserverInit;
  mutationFilter?: MutationFilter;
  callback: (mutations?: MutationRecord[]) => void;
};
/**
 * The `MutationObserverSlimmer` class in TypeScript extends `VegaSlimmer` and implements a
 * simplified version of `MutationObserver` functionality for observing DOM mutations.
 */
export declare class MutationObserverSlimmer extends VegaSlimmer {
  host: HTMLElement;
  private mutationObserver;
  private readonly observerEntry;
  /**
   * Component lifecycle - [connectedCallback]
   */
  connectedCallback(): void;
  /**
   * Component lifecycle - [disconnectedCallback]
   */
  disconnectedCallback(): void;
  /**
   * Component lifecycle - [componentDidLoad]
   */
  componentDidLoad(): void;
  /**
   * The constructor initializes a class instance with a MutationObserverEntry parameter.
   *
   * @param {MutationObserverEntry} observerEntry - The `observerEntry` parameter in the constructor is
   * of type `MutationObserverEntry`. This parameter likely contains information about a single change
   * that was observed by a `MutationObserver` instance. It could include details such as the type of
   * mutation, the target element that was mutated, and any additional relevant information
   */
  constructor(observerEntry: MutationObserverEntry);
  /**
   * The function `initMutationObserver` creates a new MutationObserver that triggers a callback based on
   * specified mutation filters.
   */
  private initMutationObserver;
  /**
   * The function observeMutationObserver() observes mutations on a target element using a
   * MutationObserver.
   */
  private observeMutationObserver;
}
