import { VegaSlimmer } from '../../../vega-slimmer/vega-slimmer-core';
import { ElementAppender, ElementAppenderShowConfig } from '../../ui/element-appender';
import { Nullable } from '../../../types/general';
import { ElementAppenderHierarchyTreeManager } from './element-appender-hierarchy-tree-manager';
import { VegaEATriggerType } from '../../../types/ui.type';
declare type ShowConfigFactoryType = () => ElementAppenderShowConfig;
declare type GetTriggerType = () => VegaEATriggerType;
declare type DisableInteractiveGetter = () => boolean;
export declare class ElementAppenderSlimmer extends VegaSlimmer {
  private static readonly DELAY_HIDE_TIME;
  protected hierarchyTreeManager: ElementAppenderHierarchyTreeManager;
  private showConfigFactory;
  private getTrigger;
  private isDropdownShowName;
  private showConfig;
  private delayHideTimer;
  private elementAppender;
  private shadowRootElementScrollingObserver;
  /**
   * appendableElement is interactive by default (to pass [WCAG 2.1 success criterion 1.4.13](https://www.w3.org/TR/WCAG21/#content-on-hover-or-focus))
   */
  private disableInteractiveGetter;
  connectedCallback(): void;
  disconnectedCallback(): void;
  componentDidLoad(): void;
  constructor(showConfigFactory: ShowConfigFactoryType, getTrigger: GetTriggerType, isDropdownShowName?: string, disableInteractiveGetter?: DisableInteractiveGetter);
  getElementAppender(): Nullable<ElementAppender>;
  show(): void;
  hide(): void;
  destroy(): void;
  updateShowConfigFactory(showConfigFactory: ShowConfigFactoryType): void;
  private destroyElementAppender;
  private initElementAppender;
  private setElementAppender;
  private isShowing;
  private setShowConfig;
  /**
   * It adds event listeners to the target and the appendable element
   */
  private registerElementAppenderListener;
  /**
   * It removes all event listeners that were added in the `register()` function
   */
  private unRegisterElementAppenderListener;
  private targetClickHandler;
  private targetMouseEnterHandler;
  private targetMouseLeaveHandler;
  private targetFocusoutHandler;
  private elementMouseEnterHandler;
  private elementMouseLeaveHandler;
  private globalMouseDownHandler;
  private globalScrollHandler;
  private createDelayHideTimer;
  private clearDelayHideTimer;
  /**
   * Sets up an observer to handle scroll events in a shadow root element.
   */
  private listenShadowRootElementScrolling;
  /**
   * Checks if the host element is a parent of the target element.
   *
   * @param {ShadowRootElementScrollingPayload} payload - payload.
   * @returns {boolean} - Can accept.
   */
  private canAcceptShadowRootScrollEvent;
  /**
   * Remove observer for scrolling in a shadow root element.
   */
  private removeShadowRootElementScrolling;
  private executeTriggerStrategy;
  private getTriggerStrategy;
  /**
   * Sets `ariaOwnsElements` on the target element to reference the appendable element directly.
   * Uses the Element Reflection API which works across shadow DOM boundaries by using
   * direct element references instead of IDREF strings.
   * This ensures screen readers (e.g. VoiceOver) can navigate to the portal-appended
   * content immediately after the trigger, rather than at the end of the document.
   */
  private setAriaOwns;
  /**
   * Removes `ariaOwnsElements` from the target element when the popup is hidden or destroyed.
   */
  private removeAriaOwns;
}
export {};
