/** * Pressable / Touchable* auto-tracker. Monkey-patches the host's * `react-native` namespace so every ``, ``, * ``, and `` press * emits a BUTTON_CLICK event without the host having to call * `Keewano.reportButtonClick(...)` per button. * * The patch wraps the component reference so it works for both * function-component and forwardRef-component exports across RN * versions. The wrapper logic lives in `pressableWrapper.ts`; this * file owns only the per-key iteration + detach discipline. * * Detach restores the originals iff the namespace still points at * our wrapper. If another monkey-patcher chained on top after us, * we leave their patch in place rather than ripping it out (we * would otherwise corrupt their tracking). */ import type { KeewanoTracker } from '../types/config'; import type { PressableTrackerArgs } from './types/PressableTracker'; declare class PressableTracker implements KeewanoTracker { readonly name = "PressableTracker"; private readonly args; constructor(args: PressableTrackerArgs); /** * Patch every touchable component on the resolved RN namespace and * return a detach that restores the originals. If RN is absent * (Node test runner / non-RN host) the attach returns a no-op * detach so the SDK boot survives. */ attach(): () => void; } export type { PressableTrackerArgs } from './types/PressableTracker'; export { pickButtonName } from './pickButtonName'; export { PressableTracker };