import type { OverlayContentContext, OverlayMountable } from "./overlays/div-overlay.js"; export type PopupContentBlockType = "popupText" | "popupHtml" | "popupImage" | "popupVideo" | "popupChart" | string; export interface PopupContentBlock { type: PopupContentBlockType; title?: string; visible?: boolean; props?: Record; } export interface PopupContentSpec { title?: string; props?: Record; children?: PopupContentBlock[]; } export type PopupContentCleanup = void | (() => void) | { destroy(): void; }; export type PopupChartRenderer = (container: HTMLElement, block: PopupContentBlock, context: OverlayContentContext) => PopupContentCleanup | Promise; export interface PopupContentOptions { chartRenderer?: PopupChartRenderer; classPrefix?: string; emptyText?: string; properties?: (context: OverlayContentContext) => Record; } export interface EChartsPopupRendererOptions { libraryUrl?: string; renderer?: "canvas" | "svg"; } /** * Creates safe, lifecycle-aware declarative popup content. It can be passed * directly to `bindPopup()` and keeps product/editor schemas out of Popup. */ export declare function popupContent(spec: PopupContentSpec, options?: PopupContentOptions): OverlayMountable; /** A CSP-conscious sanitizer for the explicit HTML popup block. */ export declare function sanitizePopupHtml(value: unknown): DocumentFragment; export declare function popupConditionMatches(expression: unknown, context: OverlayContentContext, resolveProperties?: PopupContentOptions["properties"]): boolean; /** Optional ECharts adapter; ECharts is loaded only when the first chart mounts. */ export declare function createEChartsPopupRenderer(options?: EChartsPopupRendererOptions): PopupChartRenderer; //# sourceMappingURL=popup-content.d.ts.map