import { VegaSlimmer } from '../../../vega-slimmer/vega-slimmer-core';
import { DomNodeSubject } from '../../../helpers/change-manager/subject/dom-node-subject/dom-node-subject';
import { Nullable } from '../../../types/general';
/**
 * The code is defining an abstract class called `VegaNavObserverSlimmer` that extends the `VegaSlimmer` class.
 */
export declare abstract class VegaNavObserverSlimmer extends VegaSlimmer {
  private observer;
  protected abstract host: HTMLElement;
  /**
   * Unregister the observer with subject of LEFT_NAV_LINK_SELECTED_TOPIC.
   */
  disconnectedCallback(): void;
  /**
   * The function creates an observer to observe the subject of LEFT_NAV_LINK_SELECTED_TOPIC.
   */
  componentWillLoad(): void;
  /**
   * The function checks if the input is an HTMLElement and if it has the same parent element with the host element.
   *
   * @param {unknown} input - The `input` parameter is of type `unknown`, which means it can be any type.
   * @returns {boolean} a boolean value indicating whether the input is acceptable observer.
   */
  protected isAcceptableNavListObserver<T>(input: unknown): input is T;
  protected abstract observerListener(castInput: HTMLVegaLeftNavLinkElement): void;
  protected abstract getObserverSubject(): Nullable<DomNodeSubject>;
}
