import { CSSProperties } from 'react'; import { StreamTypes, PlaybackTypes, CmcdTypes, MaxResolutionValue, MinResolutionValue, RenditionOrderValue, MaxAutoResolutionValue } from '@mux/playback-core'; import MuxPlayerElement from '@mux/mux-player'; import { Tokens, EventMap as MuxPlayerElementEventMap } from '@mux/mux-player'; /** * CSS properties interface for Mux components * Extends standard CSSProperties to include custom CSS variables */ export interface MuxCSSProperties extends CSSProperties { [key: string]: string | undefined; } export type MuxPlayerCSSProperties = MuxCSSProperties; type ValueOf = T[keyof T]; export interface GenericEventListener { (evt: T): void; } export type MuxPlayerRefAttributes = MuxPlayerElement; type VideoApiAttributes = { currentTime: number; volume: number; paused: boolean; src: string | null; poster: string; playbackRate: number; playsInline: boolean; preload: string; crossOrigin: string; autoPlay: boolean | string; loop: boolean; muted: boolean; style: MuxPlayerCSSProperties; }; type MuxMediaPropTypes = { audio: boolean; envKey: string; debug: boolean; disableTracking: boolean; disableCookies: boolean; disablePictureInPicture?: boolean; disablePseudoEnded?: boolean; metadata: { [k: string]: any; }; extraSourceParams: Record; _hlsConfig: MuxPlayerElement['_hlsConfig']; beaconCollectionDomain: string; customDomain: string; playbackId: string; preferPlayback: ValueOf | undefined; streamType: ValueOf | 'll-live' | 'live:dvr' | 'll-live:dvr'; defaultStreamType: ValueOf; targetLiveWindow: number; startTime: number; initialBandwidthEstimateKbps: number; initialEstimateSegments: number; minPreloadSegments: number; storyboardSrc: string; preferCmcd: ValueOf | undefined; children?: React.ReactNode; }; export type Props = MuxPlayerProps; export type MuxPlayerProps = { className?: string; hotkeys?: string; nohotkeys?: boolean; castReceiver?: string | undefined; castCustomData?: Record | undefined; defaultHiddenCaptions?: boolean; playerSoftwareVersion?: string; playerSoftwareName?: string; playerInitTime?: number; forwardSeekOffset?: number; backwardSeekOffset?: number; maxResolution?: MaxResolutionValue; minResolution?: MinResolutionValue; maxAutoResolution?: MaxAutoResolutionValue; renditionOrder?: RenditionOrderValue; programStartTime?: number; programEndTime?: number; proudlyDisplayMuxBadge?: boolean; /** Allow playback with ad blocker */ allowAdBlocker?: boolean; adTagUrl?: string; assetStartTime?: number; assetEndTime?: number; metadataVideoId?: string; metadataVideoTitle?: string; metadataViewerUserId?: string; primaryColor?: string; secondaryColor?: string; accentColor?: string; placeholder?: string; playbackRates?: number[]; defaultShowRemainingTime?: boolean; defaultDuration?: number; noVolumePref?: boolean; noMutedPref?: boolean; thumbnailTime?: number; title?: string; videoTitle?: string; tokens?: Tokens; theme?: string; themeProps?: { [k: string]: any; }; fullscreenElement?: string; capRenditionToPlayerSize?: boolean; onAbort?: GenericEventListener; onCanPlay?: GenericEventListener; onCanPlayThrough?: GenericEventListener; onEmptied?: GenericEventListener; onLoadStart?: GenericEventListener; onLoadedData?: GenericEventListener; onLoadedMetadata?: GenericEventListener; onProgress?: GenericEventListener; onDurationChange?: GenericEventListener; onVolumeChange?: GenericEventListener; onRateChange?: GenericEventListener; onResize?: GenericEventListener; onWaiting?: GenericEventListener; onPlay?: GenericEventListener; onPlaying?: GenericEventListener; onTimeUpdate?: GenericEventListener; onPause?: GenericEventListener; onSeeking?: GenericEventListener; onSeeked?: GenericEventListener; onStalled?: GenericEventListener; onSuspend?: GenericEventListener; onEnded?: GenericEventListener; onError?: GenericEventListener; onCuePointChange?: GenericEventListener; onChapterChange?: GenericEventListener; } & Partial & Partial; export {};