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');