import { ElementAppenderShowConfig } from '../../../ui/element-appender';
import { BodyPositionedWrapper } from './body-positioned-wrapper.abstract';
/**
 * Appends the popover content box inside the nearest third-party dialog/modal (e.g. Bootstrap,
 * MUI) so that their focus trap does not block focus on vega-popover content.
 *
 * Detection strategy:
 * 1. Walk up from the target to find `dialog` or `[aria-modal="true"]`.
 * 2. Skip Vega-owned elements (tag starts with `VEGA-`).
 * 3. Locate the focus-trap root via `closest('[tabindex="-1"]')`.
 */
export declare class ThirdPartyDialogWrapper extends BodyPositionedWrapper {
  showConfig: ElementAppenderShowConfig;
  private focusTrapRoot;
  /**
   * Returns true when the target lives inside a third-party dialog.
   *
   * NOTE: Does NOT call super.canRetrieve() — must activate even when isScreenPosition=true
   * (e.g. image editor popover) so the content box stays inside the focus-trap root.
   *
   * @returns {boolean} Whether the target is inside a third-party dialog.
   */
  canRetrieve(): boolean;
  /**
   * Appends the popover content box inside the focus-trap root.
   *
   * @returns {HTMLElement} The focus-trap root element.
   */
  retrieve(): HTMLElement;
  /**
   * Finds the focus-trap root of the nearest third-party dialog ancestor.
   * Returns null if not inside a third-party dialog or if the dialog is Vega-owned.
   *
   * @param {Nullable<HTMLElement>} el - The element to start searching from.
   * @returns {Nullable<HTMLElement>} The focus-trap root, or null.
   */
  private findFocusTrapRoot;
  /**
   * Returns true when the element is a Vega custom element (tag starts with `VEGA-`).
   *
   * @param {HTMLElement} el - The element to check.
   * @returns {boolean} True if the element is Vega-owned.
   */
  private isVegaOwned;
}
