/** * React Native UI tracking methods: button clicks, window open/close, * and scene load/unload. Each emits one event record onto the * dispatcher. The scene methods also maintain the navigation cursor * (`runtime.lastSceneName`), which is React-Native-specific, so this * module stays in the platform package while the cross-platform * progression signals (onboarding, A/B test) live in `@keewano/core`. */ /** * Emit a `BUTTON_CLICK` event with the (truncated) button name as * payload. Truncation keeps the wire payload bounded at 256 chars. */ declare function reportButtonClick(name: string): void; /** Emit a `WINDOW_OPEN` event with the (truncated) window name. */ declare function reportWindowOpen(name: string): void; /** Emit a `WINDOW_CLOSE` event with the (truncated) window name. */ declare function reportWindowClose(name: string): void; /** * Emit a `SCENE_LOADED` event with the (truncated) scene / route name. * Used by the navigation hooks (`useKeewanoNavigation`) to report * full-screen route transitions; distinct from * {@link reportWindowOpen}, which is for in-screen modals / popups. * * Blank / whitespace-only names short-circuit. A direct host call with * an empty string would otherwise emit a zero-length wire event AND * pin `runtime.lastSceneName=''`, which the next transition's * `previous` check (`previous !== undefined`) would treat as a real * scene and emit a bogus `SCENE_UNLOADED('')` for it. */ declare function reportSceneLoaded(name: string): void; /** * Emit a `SCENE_UNLOADED` event with the (truncated) scene / route name. * * Blank / whitespace-only names short-circuit (same rationale as * `reportSceneLoaded`: a blank name would otherwise emit a noise * wire event and, if the cursor happened to be blank too, would * wrongly clear it). */ declare function reportSceneUnloaded(name: string): void; export { reportButtonClick, reportSceneLoaded, reportSceneUnloaded, reportWindowClose, reportWindowOpen, };