declare class RegionExportController { private readonly mapEl; /** `hadElement` records whether an authored `` existed WHEN THE TILESET LOADED — see `visibleTilesets` for why "no element now" alone can't mean "removed". */ private tilesets; constructor(mapEl: Element); /** The last committed ring on `target` — a draw widget's own polygon, same coords `snapshotIR`/measure read. `null` when nothing's been drawn yet (or the last shape isn't a polygon). */ private lastRing; /** * Registered tilesets whose OWN `` is currently visible (spec: * issue #34 tier 1 — "measure/export only what's visible"). `visible` * reads directly off the DOM attribute — `!== "false"`, the exact check * `toggle-layer` itself uses (actions.ts) — not a reactive-props lookup, * so this stays consistent with a plain `visible="false"` author edit AND * with a live `toggle-layer` click, without needing this controller to * carry `layerIRs` around just for one boolean. A layer hidden AFTER it * loaded (the common case — someone toggles it off before exporting) is * excluded; one never registered at all (never fired `om-tileset-load`) * was already excluded by construction. * * A layer whose `` has since been REMOVED from the DOM (a * manifest edit, a story step, a framework re-render) is excluded too, and * its registry entry dropped on the way past — `this.tilesets` is only ever * appended to, so otherwise a deleted layer's geometry kept exporting * indefinitely. * * That's gated on `hadElement`, captured when the load event fired, rather * than on "no element right now": a programmatically-built layer legitimately * has no `` at all, and treating a missing element as removal * would exclude every such layer from export permanently. Seen-then-gone is * removal; never-seen is a DOM-less layer, which stays exportable. */ private visibleTilesets; exportRegion(target: string, format: "glb" | "b3dm"): Promise; } /** Exported so the `draw` widget can call this EAGERLY at render time (when `export-3d` is configured), before the user has drawn anything — see the constructor's own doc comment for why lazy binding on first export doesn't work. */ export declare function getRegionExportController(mapEl: Element): RegionExportController; export {};