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 StateInfo = | { kind: 'idle'; } | { kind: 'state'; status: string; } | { kind: 'transition'; toState: string; transition: string; }; // eslint-disable-next-line @typescript-eslint/no-unused-vars type ObjectOr<_T> = Object; type StateReal = { kind: 'followPuck' } /* | { kind: 'overview' } */; type State = ObjectOr; type TransitionReal = | { kind: 'immediate' } | { kind: 'default'; options: { maxDurationMs?: number } }; type Transition = ObjectOr; type ViewRef = Int32 | null; export interface Spec extends TurboModule { getState(viewRef: ViewRef): Promise; transitionTo( viewRef: ViewRef, state: State, transition: Transition, ): Promise; idle(viewRef: ViewRef): Promise; } export default TurboModuleRegistry.getEnforcing('RNMBXViewportModule');