import type { TurboModule } from 'react-native/Libraries/TurboModule/RCTExport'; // @ts-ignore - CI environment type resolution issue for CodegenTypes import { Int32 } from 'react-native/Libraries/Types/CodegenTypes'; import { TurboModuleRegistry } from 'react-native'; type ViewRef = Int32 | null; interface NativeCameraStop { centerCoordinate?: string; bounds?: string; heading?: number; pitch?: number; zoom?: number; paddingLeft?: number; paddingRight?: number; paddingTop?: number; paddingBottom?: number; duration?: number; mode?: number; } type Stop = | { stops: NativeCameraStop[]; } | NativeCameraStop; // eslint-disable-next-line @typescript-eslint/no-unused-vars type ObjectOr<_T> = Object; export interface Spec extends TurboModule { updateCameraStop(viewRef: ViewRef, stop: ObjectOr): Promise; moveBy: ( viewRef: ViewRef, x: number, y: number, animationMode: number, animationDuration: number, ) => Promise; scaleBy: ( viewRef: ViewRef, x: number, y: number, animationMode: number, animationDuration: number, scaleFactor: number, ) => Promise; } export default TurboModuleRegistry.getEnforcing('RNMBXCameraModule');