import type { TurboModule } from 'react-native' import { TurboModuleRegistry } from 'react-native' export type MaskingOptions = Readonly<{ maskTextInputs?: boolean maskImages?: boolean maskButtons?: boolean maskLabels?: boolean maskWebViews?: boolean maskSandboxedViews?: boolean quality?: number scale?: number noCaptureLabel?: string }> export interface Spec extends TurboModule { captureAndMask(): Promise captureAndMaskWithOptions(options: MaskingOptions): Promise startGestureRecording(): Promise stopGestureRecording(): Promise isGestureRecordingActive(): Promise recordGesture( gestureType: string, x: number, y: number, target?: string, metadata?: object, ): void addListener(eventName: string): void removeListeners(count: number): void } export default TurboModuleRegistry.getEnforcing('SessionRecorderNative')