import type { EventProperties } from "./client.js"; import { type ScreenTrackingErrorHandler } from "./screen-tracking.js"; export type ExpoRouterScreen = { name: string; properties?: EventProperties; }; export type ExpoRouterScreenTrackingOptions = { /** * Maps the current pathname to a stable screen name and safe properties. * Return `null` to ignore a pathname. */ toScreen?: (pathname: string) => ExpoRouterScreen | null | undefined; /** Receives rejected `screen()` calls. */ onError?: ScreenTrackingErrorHandler; }; /** * Reports Expo Router pathname changes through `client.screen()`. * * Pass the value returned by Expo Router's `usePathname()`. Keeping that hook * in application code lets this adapter stay optional and avoids making Expo a * dependency of the React Native SDK. Consecutive renders of the same pathname * are treated as one screen transition. */ export declare function useExpoRouterScreenTracking(pathname: string, options?: ExpoRouterScreenTrackingOptions): void;