import type { RefObject } from 'react'; import type { ViewStyle, StyleProp, Animated } from 'react-native'; import type Reanimated from 'react-native-reanimated'; import type { StyleProps } from 'react-native-reanimated'; import type { VideoRef, ReactVideoProps } from 'react-native-video'; export type WithRequiredProperty = Type & { [Property in Key]-?: Type[Property]; }; export type VideoAnimations = { AnimatedView: typeof Reanimated.View | typeof Animated.View; hideControlAnimation: () => void; showControlAnimation: () => void; bottomControl: StyleProps; topControl: StyleProps; controlsOpacity: StyleProps; }; export interface VideoPlayerProps extends ReactVideoProps { animations?: VideoAnimations; useAnimations?: (controlAnimationTiming: number) => VideoAnimations; /** * If true, clicking the fullscreen button will toggle the