import type { HostComponent, ViewProps } from 'react-native'; import type { DirectEventHandler, Double, Float, Int32, WithDefault } from 'react-native/Libraries/Types/CodegenTypes'; type Headers = ReadonlyArray>; type VideoMetadata = Readonly<{ title?: string; subtitle?: string; description?: string; imageUri?: string; }>; export type AdsConfig = Readonly<{ type?: string; streamType?: string; adTagUrl?: string; adLanguage?: string; contentSourceId?: string; videoId?: string; assetKey?: string; format?: string; adTagParameters?: Record; fallbackUri?: string; }>; export type VideoSrc = Readonly<{ uri?: string; isNetwork?: boolean; isAsset?: boolean; isLocalAssetFile?: boolean; shouldCache?: boolean; type?: string; mainVer?: Int32; patchVer?: Int32; requestHeaders?: Headers; startPosition?: Float; cropStart?: Float; cropEnd?: Float; contentStartTime?: Int32; metadata?: VideoMetadata; drm?: Drm; cmcd?: NativeCmcdConfiguration; textTracksAllowChunklessPreparation?: boolean; textTracks?: TextTracks; ad?: AdsConfig; minLoadRetryCount?: Int32; bufferConfig?: BufferConfig; }>; type DRMType = WithDefault; type DebugConfig = Readonly<{ enable?: boolean; thread?: boolean; }>; type Drm = Readonly<{ type?: DRMType; licenseServer?: string; headers?: Headers; contentId?: string; certificateUrl?: string; base64Certificate?: boolean; useExternalGetLicense?: boolean; multiDrm?: WithDefault; localSourceEncryptionKeyScheme?: string; }>; type CmcdMode = WithDefault; export type NativeCmcdConfiguration = Readonly<{ mode?: CmcdMode; request?: Headers; session?: Headers; object?: Headers; status?: Headers; }>; type TextTracks = ReadonlyArray>; type SelectedTextTrackType = WithDefault; type SelectedAudioTrackType = WithDefault; type SelectedTextTrack = Readonly<{ type?: SelectedTextTrackType; value?: string; }>; type SelectedAudioTrack = Readonly<{ type?: SelectedAudioTrackType; value?: string; }>; type SelectedVideoTrackType = WithDefault; type SelectedVideoTrack = Readonly<{ type?: SelectedVideoTrackType; value?: string; }>; type BufferConfigLive = Readonly<{ maxPlaybackSpeed?: Float; minPlaybackSpeed?: Float; maxOffsetMs?: Int32; minOffsetMs?: Int32; targetOffsetMs?: Int32; }>; type BufferingStrategyType = WithDefault; type BufferConfig = Readonly<{ minBufferMs?: Float; maxBufferMs?: Float; bufferForPlaybackMs?: Float; bufferForPlaybackAfterRebufferMs?: Float; maxHeapAllocationPercent?: Float; backBufferDurationMs?: Float; minBackBufferMemoryReservePercent?: Float; minBufferMemoryReservePercent?: Float; cacheSizeMB?: Float; live?: BufferConfigLive; }>; type SubtitleStyle = Readonly<{ fontSize?: Float; paddingTop?: WithDefault; paddingBottom?: WithDefault; paddingLeft?: WithDefault; paddingRight?: WithDefault; opacity?: WithDefault; subtitlesFollowVideo?: WithDefault; }>; type OnLoadData = Readonly<{ currentTime: Float; duration: Float; naturalSize: Readonly<{ width: Float; height: Float; orientation: WithDefault; }>; audioTracks: { index: Int32; title?: string; language?: string; bitrate?: Float; type?: string; selected?: boolean; }[]; textTracks: { index: Int32; title?: string; language?: string; /** * iOS only supports VTT, Android supports all 3 */ type?: WithDefault; selected?: boolean; }[]; }>; export type OnLoadStartData = Readonly<{ isNetwork: boolean; type: string; uri: string; }>; export type OnVideoAspectRatioData = Readonly<{ width: Float; height: Float; }>; export type OnBufferData = Readonly<{ isBuffering: boolean; }>; export type OnProgressData = Readonly<{ currentTime: Float; playableDuration: Float; seekableDuration: Float; }>; export type OnBandwidthUpdateData = Readonly<{ bitrate: Int32; width?: Float; height?: Float; trackId?: string; }>; export type OnSeekData = Readonly<{ currentTime: Float; seekTime: Float; }>; export type OnPlaybackStateChangedData = Readonly<{ isPlaying: boolean; isSeeking: boolean; }>; export type OnTimedMetadataData = Readonly<{ metadata: { value?: string; identifier: string; }[]; }>; export type OnAudioTracksData = Readonly<{ audioTracks: { index: Int32; title?: string; language?: string; bitrate?: Float; type?: string; selected?: boolean; }[]; }>; type OnTextTracksData = Readonly<{ textTracks: { index: Int32; title?: string; language?: string; /** * iOS only supports VTT, Android supports all 3 */ type?: WithDefault; selected?: boolean; }[]; }>; export type OnTextTrackDataChangedData = Readonly<{ subtitleTracks: string; }>; export type OnVideoTracksData = Readonly<{ videoTracks: { index: Int32; trackId?: string; codecs?: string; width?: Float; height?: Float; bitrate?: Float; selected?: boolean; }[]; }>; export type OnPlaybackRateChangeData = Readonly<{ playbackRate: Float; }>; export type OnVolumeChangeData = Readonly<{ volume: Float; }>; export type OnExternalPlaybackChangeData = Readonly<{ isExternalPlaybackActive: boolean; }>; export type OnGetLicenseData = Readonly<{ licenseUrl: string; loadedLicenseUrl: string; contentId: string; spcBase64: string; }>; export type OnPictureInPictureStatusChangedData = Readonly<{ isActive: boolean; }>; type OnReceiveAdEventData = Readonly<{ data?: {}; event: WithDefault; }>; export type OnVideoErrorData = Readonly<{ error: Readonly<{ errorString?: string; errorException?: string; errorStackTrace?: string; errorCode?: string; error?: string; code?: Int32; localizedDescription?: string; localizedFailureReason?: string; localizedRecoverySuggestion?: string; domain?: string; }>; cause?: object; target?: Int32; }>; export type OnAudioFocusChangedData = Readonly<{ hasAudioFocus: boolean; }>; type ControlsStyles = Readonly<{ hidePosition?: WithDefault; hidePlayPause?: WithDefault; hideForward?: WithDefault; hideRewind?: WithDefault; hideNext?: WithDefault; hidePrevious?: WithDefault; hideFullscreen?: WithDefault; hideSeekBar?: WithDefault; hideDuration?: WithDefault; hideNavigationBarOnFullScreenMode?: WithDefault; hideNotificationBarOnFullScreenMode?: WithDefault; hideSettingButton?: WithDefault; seekIncrementMS?: Int32; liveLabel?: string; }>; export type OnControlsVisibilityChange = Readonly<{ isVisible: boolean; }>; export interface VideoNativeProps extends ViewProps { src?: VideoSrc; allowsExternalPlayback?: boolean; disableFocus?: boolean; maxBitRate?: Float; resizeMode?: WithDefault; repeat?: boolean; automaticallyWaitsToMinimizeStalling?: boolean; shutterColor?: Int32; audioOutput?: WithDefault; selectedTextTrack?: SelectedTextTrack; selectedAudioTrack?: SelectedAudioTrack; selectedVideoTrack?: SelectedVideoTrack; paused?: boolean; muted?: boolean; controls?: boolean; filter?: WithDefault; filterEnabled?: boolean; volume?: Float; playInBackground?: boolean; preventsDisplaySleepDuringVideoPlayback?: boolean; preferredForwardBufferDuration?: Float; playWhenInactive?: boolean; enterPictureInPictureOnLeave?: boolean; ignoreSilentSwitch?: WithDefault; mixWithOthers?: WithDefault; rate?: Float; fullscreen?: boolean; fullscreenAutorotate?: boolean; fullscreenOrientation?: WithDefault; progressUpdateInterval?: Float; restoreUserInterfaceForPIPStopCompletionHandler?: boolean; debug?: DebugConfig; showNotificationControls?: WithDefault; currentPlaybackTime?: Double; disableDisconnectError?: boolean; focusable?: boolean; hideShutterView?: boolean; reportBandwidth?: boolean; subtitleStyle?: SubtitleStyle; viewType?: Int32; bufferingStrategy?: BufferingStrategyType; controlsStyles?: ControlsStyles; disableAudioSessionManagement?: boolean; onControlsVisibilityChange?: DirectEventHandler; onVideoLoad?: DirectEventHandler; onVideoLoadStart?: DirectEventHandler; onVideoAspectRatio?: DirectEventHandler; onVideoBuffer?: DirectEventHandler; onVideoError?: DirectEventHandler; onVideoProgress?: DirectEventHandler; onVideoBandwidthUpdate?: DirectEventHandler; onVideoSeek?: DirectEventHandler; onVideoEnd?: DirectEventHandler<{}>; onVideoAudioBecomingNoisy?: DirectEventHandler<{}>; onVideoFullscreenPlayerWillPresent?: DirectEventHandler<{}>; onVideoFullscreenPlayerDidPresent?: DirectEventHandler<{}>; onVideoFullscreenPlayerWillDismiss?: DirectEventHandler<{}>; onVideoFullscreenPlayerDidDismiss?: DirectEventHandler<{}>; onReadyForDisplay?: DirectEventHandler<{}>; onPlaybackRateChange?: DirectEventHandler; onVolumeChange?: DirectEventHandler; onVideoExternalPlaybackChange?: DirectEventHandler; onGetLicense?: DirectEventHandler; onPictureInPictureStatusChanged?: DirectEventHandler; onRestoreUserInterfaceForPictureInPictureStop?: DirectEventHandler<{}>; onReceiveAdEvent?: DirectEventHandler; onVideoPlaybackStateChanged?: DirectEventHandler; onVideoIdle?: DirectEventHandler<{}>; onAudioFocusChanged?: DirectEventHandler; onTimedMetadata?: DirectEventHandler; onAudioTracks?: DirectEventHandler; onTextTracks?: DirectEventHandler; onTextTrackDataChanged?: DirectEventHandler; onVideoTracks?: DirectEventHandler; } type NativeVideoComponentType = HostComponent; declare const _default: NativeVideoComponentType; export default _default;