@vexor-video/player 0.0.0-stage → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,120 @@
1
+ import React$1, { ReactNode, CSSProperties } from 'react';
2
+ import { W as WatermarkConfig, Q as QualityLevel } from './vanilla-BZJjSEad.js';
3
+ export { V as VanillaPlayerInstance, c as createVexorPlayer } from './vanilla-BZJjSEad.js';
4
+
5
+ interface VexorPlayerProps {
6
+ /** Full authenticated HLS manifest URL. */
7
+ src?: string;
8
+ /** Vexor asset UUID used when src is not provided. */
9
+ assetId?: string;
10
+ /** Short-lived playback token used with assetId. */
11
+ token?: string;
12
+ /** Vexor API base URL (default: https://api.vexor.et). */
13
+ baseUrl?: string;
14
+ /** Poster thumbnail URL. */
15
+ poster?: string;
16
+ /** Automatically start playback (browser policy may require muted=true). */
17
+ autoPlay?: boolean;
18
+ /** Start audio muted. */
19
+ muted?: boolean;
20
+ /** Loop playback. */
21
+ loop?: boolean;
22
+ /** HTML video preload behavior. */
23
+ preload?: "auto" | "metadata" | "none";
24
+ /** Fallback URL if HLS is unsupported or cannot be played. */
25
+ fallbackSrc?: string;
26
+ /** Display custom controls (default: true). */
27
+ controls?: boolean;
28
+ /** Use browser native controls instead of Vexor controls. */
29
+ nativeControls?: boolean;
30
+ /** Visible watermark overlay; this is a deterrent, not DRM or capture prevention. */
31
+ watermark?: string | WatermarkConfig;
32
+ /** Suppress context menu and drag interactions as a casual-copy deterrent only. */
33
+ protect?: boolean;
34
+ /** Retrieve a fresh playback token when an active token expires. */
35
+ refreshToken?: () => Promise<string>;
36
+ /** Playback lifecycle callbacks. */
37
+ onReady?: () => void;
38
+ onPlay?: () => void;
39
+ onPause?: () => void;
40
+ onEnded?: () => void;
41
+ onTimeUpdate?: (currentTime: number, duration: number) => void;
42
+ onError?: (error: {
43
+ code: string;
44
+ message: string;
45
+ fatal: boolean;
46
+ }) => void;
47
+ onQualityChange?: (levelIndex: number) => void;
48
+ /** Custom child elements rendered over the player. */
49
+ children?: ReactNode;
50
+ /** CSS class name applied to player container. */
51
+ className?: string;
52
+ /** Inline styles applied to player container. */
53
+ style?: CSSProperties;
54
+ }
55
+
56
+ declare const VexorPlayer: React$1.FC<VexorPlayerProps>;
57
+
58
+ interface ControlsProps {
59
+ isPlaying: boolean;
60
+ isBuffering: boolean;
61
+ currentTime: number;
62
+ duration: number;
63
+ buffered: number;
64
+ volume: number;
65
+ isMuted: boolean;
66
+ isFullscreen: boolean;
67
+ qualityLevels: QualityLevel[];
68
+ currentQuality: number;
69
+ playbackRate: number;
70
+ visible: boolean;
71
+ onPlayPause: () => void;
72
+ onSeek: (time: number) => void;
73
+ onVolumeChange: (volume: number) => void;
74
+ onToggleMute: () => void;
75
+ onQualityChange: (levelIndex: number) => void;
76
+ onPlaybackRateChange: (rate: number) => void;
77
+ onToggleFullscreen: () => void;
78
+ onTogglePiP: () => void;
79
+ }
80
+ declare const Controls: React$1.FC<ControlsProps>;
81
+
82
+ interface WatermarkProps {
83
+ config?: string | WatermarkConfig;
84
+ }
85
+ declare const Watermark: React$1.FC<WatermarkProps>;
86
+
87
+ interface UseVexorPlayerReturn {
88
+ videoRef: React.RefObject<HTMLVideoElement | null>;
89
+ containerRef: React.RefObject<HTMLDivElement | null>;
90
+ isPlaying: boolean;
91
+ isBuffering: boolean;
92
+ currentTime: number;
93
+ duration: number;
94
+ buffered: number;
95
+ volume: number;
96
+ isMuted: boolean;
97
+ isFullscreen: boolean;
98
+ qualityLevels: QualityLevel[];
99
+ currentQuality: number;
100
+ playbackRate: number;
101
+ error: {
102
+ code: string;
103
+ message: string;
104
+ fatal: boolean;
105
+ } | null;
106
+ play: () => Promise<void>;
107
+ pause: () => void;
108
+ togglePlay: () => void;
109
+ seek: (time: number) => void;
110
+ setVolume: (vol: number) => void;
111
+ toggleMute: () => void;
112
+ setQuality: (levelIndex: number) => void;
113
+ setPlaybackRate: (rate: number) => void;
114
+ toggleFullscreen: () => void;
115
+ togglePiP: () => void;
116
+ retry: () => void;
117
+ }
118
+ declare function useVexorPlayer({ src, assetId, token, baseUrl, fallbackSrc, autoPlay, muted, refreshToken, onReady, onPlay, onPause, onEnded, onTimeUpdate, onError, onQualityChange, }: VexorPlayerProps): UseVexorPlayerReturn;
119
+
120
+ export { Controls, QualityLevel, type UseVexorPlayerReturn, VexorPlayer, type VexorPlayerProps, Watermark, WatermarkConfig, useVexorPlayer };