import * as lit32 from "lit";
import { LitElement } from "lit";
import * as lit_html30 from "lit-html";

//#region src/gui/EFOverlayItem.d.ts
/**
 * Position changed event detail.
 */
interface OverlayItemPosition {
  x: number;
  y: number;
  width: number;
  height: number;
  rotation: number;
}
/**
 * Individual overlay item that tracks a target element.
 * Must be a direct child of ef-overlay-layer.
 *
 * NEW ARCHITECTURE: This component is now PASSIVE - it does not run its own RAF loop.
 * Instead, it registers with its parent EFOverlayLayer, which manages position updates
 * for all children in a synchronized RAF loop. This eliminates race conditions and
 * ensures transforms are applied before positions are read.
 */
declare class EFOverlayItem extends LitElement {
  static styles: lit32.CSSResult[];
  elementId?: string;
  target?: HTMLElement | string;
  private currentPosition;
  private resolveTarget;
  /**
   * Update position based on target element.
   * Called by parent EFOverlayLayer in its synchronized RAF loop.
   * PUBLIC API - called by parent layer.
   */
  updatePosition(): void;
  connectedCallback(): void;
  disconnectedCallback(): void;
  render(): lit_html30.TemplateResult<1>;
}
declare global {
  interface HTMLElementTagNameMap {
    "ef-overlay-item": EFOverlayItem;
  }
}
//#endregion
export { EFOverlayItem, OverlayItemPosition };
//# sourceMappingURL=EFOverlayItem.d.ts.map