unified-video-framework
Version:
Cross-platform video player framework supporting iOS, Android, Web, Smart TVs (Samsung/LG), Roku, and more
97 lines • 3.31 kB
TypeScript
import React from 'react';
import type { CSSProperties } from 'react';
import type { SubtitleTrack, VideoMetadata } from '../../core/dist';
import { WebPlayer } from '../WebPlayer';
import type { EPGData, EPGConfig, EPGProgram, EPGProgramRow } from './types/EPGTypes';
export interface WebPlayerViewWithEPGProps {
autoPlay?: boolean;
muted?: boolean;
enableAdaptiveBitrate?: boolean;
debug?: boolean;
freeDuration?: number;
paywall?: import('../../core/dist').PaywallConfig;
paywallConfigUrl?: string;
emailAuth?: {
enabled?: boolean;
skipIfAuthenticated?: boolean;
apiEndpoints?: {
requestOtp?: string;
verifyOtp?: string;
refreshToken?: string;
logout?: string;
};
sessionStorage?: {
tokenKey?: string;
refreshTokenKey?: string;
userIdKey?: string;
};
ui?: {
title?: string;
description?: string;
emailPlaceholder?: string;
otpPlaceholder?: string;
submitButtonText?: string;
resendButtonText?: string;
resendCooldown?: number;
};
validation?: {
otpLength?: number;
otpTimeout?: number;
rateLimiting?: {
maxAttempts?: number;
windowMinutes?: number;
};
};
};
url: string;
type?: 'mp4' | 'hls' | 'dash' | 'webm' | 'auto';
subtitles?: SubtitleTrack[];
metadata?: VideoMetadata;
cast?: boolean;
className?: string;
style?: CSSProperties;
playerTheme?: string | {
accent?: string;
accent2?: string;
iconColor?: string;
textPrimary?: string;
textSecondary?: string;
};
responsive?: {
enabled?: boolean;
aspectRatio?: number;
maxWidth?: string;
maxHeight?: string;
breakpoints?: {
mobile?: number;
tablet?: number;
};
mobilePortrait?: {
maxHeight?: string;
aspectRatio?: number;
};
mobileLandscape?: {
maxHeight?: string;
aspectRatio?: number;
};
tablet?: {
maxWidth?: string;
maxHeight?: string;
};
};
onReady?: (player: WebPlayer) => void;
onError?: (error: unknown) => void;
epg?: EPGData;
epgConfig?: Partial<EPGConfig>;
showEPG?: boolean;
onToggleEPG?: (visible: boolean) => void;
onEPGFavorite?: (program: EPGProgram, channel: EPGProgramRow) => void | Promise<void>;
onEPGRecord?: (program: EPGProgram, channel: EPGProgramRow) => void | Promise<void>;
onEPGSetReminder?: (program: EPGProgram, channel: EPGProgramRow) => void | Promise<void>;
onEPGCatchup?: (program: EPGProgram, channel: EPGProgramRow) => void | Promise<void>;
onEPGProgramSelect?: (program: EPGProgram, channel: EPGProgramRow) => void;
onEPGChannelSelect?: (channel: EPGProgramRow) => void;
}
export declare const WebPlayerViewWithEPG: React.FC<WebPlayerViewWithEPGProps>;
export default WebPlayerViewWithEPG;
//# sourceMappingURL=WebPlayerViewWithEPG.d.ts.map