/** * URL-backed debug flags — the single seam hosts use to mirror an engine debug surface (the scene * editor, the devtools overlay) into the page query string. Mirroring means the URL is the honest * record of what is open: share it to reproduce the state, and strip the param (then reload) to get * a clean game with the surface gone. All functions no-op safely off the main browser thread. */ /** The current query value of `param`, or null when absent (or no DOM). */ export declare function readUrlParam(param: string): string | null; /** True when `param` is present and not an explicit off value (`0`/`false`/`off`/`no`). */ export declare function readUrlFlag(param: string): boolean; /** * Sets `param` to `value`, or removes it when `value` is null, rewriting the URL in place with * `history.replaceState` so the rest of the query and the hash survive and no history entry is * pushed. No-ops without a DOM, and skips the write when the URL already matches. */ export declare function writeUrlParam(param: string, value: string | null): void; /** * Fires `listener` whenever the query string may have changed out from under a flag — browser * back/forward (`popstate`). Manual address-bar edits reload the page, so initial reads cover * those; this keeps in-app state honest across history navigation. Returns an unsubscribe. */ export declare function subscribeUrlChange(listener: () => void): () => void;