UNPKG

@applicaster/quick-brick-player

Version:
177 lines (164 loc) • 4.97 kB
declare module "@applicaster/quick-brick-player"; type CSSProperties = import("react-native").CSSProperties; type ConfigurationKeys = | "styles" | "general" | "localizations" | "custom_configuration_fields"; type ConfigurationField = { key: string; [key: string]: any }; type DefaultConfiguration = { styles: { fields: ConfigurationField[] }; general: { fields: ConfigurationField[] }; localizations: { fields: ConfigurationField[] }; custom_configuration_fields: { fields: ConfigurationField[] }; }; type ConfigValuesMapping = Record< ConfigurationKeys, Record<string, Record<string, any>> >; type TrackerState = { adBegin: boolean; adBreakBegin: boolean; adBreakEnd: boolean; adEnd: boolean; adError: boolean; currentTime: number | string; entryLoad: boolean; paused: boolean; playerBuffering: boolean; playerClosed: boolean; playerCreated: boolean; playerEnded: boolean; playerLoadedVideo: boolean; playing: boolean; resume: boolean; seek: boolean; seekEnd: boolean; }; type NativeEventFn = ({ nativeEvent }?: { nativeEvent: any }) => void; type NativeEvents = { onAdBegin: NativeEventFn; onAdBreakBegin: NativeEventFn; onAdBreakEnd: NativeEventFn; onAdEnd: NativeEventFn; onAdError: NativeEventFn; onJSWindowEvent: NativeEventFn; onPlaybackRateChange: (event: { nativeEvent: { playbackRate: number }; }) => void; onPlayerCanPlay: NativeEventFn; onPlayerCanPlayThrough: NativeEventFn; onPlayerDestroy: NativeEventFn; onPlayerDurationChange: NativeEventFn; onPlayerEnded: NativeEventFn; onPlayerError: NativeEventFn; onPlayerLoadedData: NativeEventFn; onPlayerLoadedMetaData: NativeEventFn; onPlayerLoadStart: NativeEventFn; onPlayerPause: NativeEventFn; onPlayerPlay: NativeEventFn; onPlayerPlaying: NativeEventFn; onPlayerPresentationModeChange: NativeEventFn; onPlayerProgress: NativeEventFn; onPlayerRateChange: NativeEventFn; onPlayerReadyStateChange: NativeEventFn; onPlayerResize: NativeEventFn; onPlayerSeekComplete: NativeEventFn; onPlayerSeekStart: NativeEventFn; onPlayerSourceChange: NativeEventFn; onPlayerTimeUpdate: NativeEventFn; onPlayerVolumeChange: NativeEventFn; onPlayerWaiting: NativeEventFn; onVideoSeek: (event: { nativeEvent: { time: number; currentTime: number }; }) => void; }; declare module "shaka-player/dist/shaka-player.compiled" { export = shaka; } type AdObject = { adId: string; adPodInfo: { podIndex: number; timeOffset: number; totalAds: number; adPosition: number; isBumper: boolean; maxDuration: number; }; adQueryId: string; adSystem: string; adWrapperCreativeIds: string[]; adWrapperIds: string[]; adWrapperSystems: string[]; advertiserName: string; apiFramework: any; attributionParams: string; clickThroughUrl: string; contentType: string; // i.e. video/mp4 type creativeAdId: string; creativeId: string; dealId: string; description: string; disableUi: boolean; duration: number; height: number; linear: true; mediaUrl: string; minSuggestedDuration: number; skippable: boolean; skipTimeOffset: string; surveyUrl: null; title: string; traffickingParameters: string; uiElements: []; universalAdIds: []; universalAdIdRegistry: string; universalAdIdValue: string; vpaid: boolean; width: number; vastMediaBitrate: number; vastMediaHeight: number; vastMediaWidth: number; }; /** * Shaka ad events that wrap IMA SDK events and provide an interface that allows interacting with ads. * https://github.com/shaka-project/shaka-player/blob/main/lib/ads/ad_manager.js * Unfortunately you will see many keys are just letters of the alphabet like; g, o, j. * This is because we are interacting with a compiled and minified package. * Documentation does not talk about things like j: which is probably getAdPodInfo(). * We also don't have the documentation where contentResumeRequested, or contentPauseRequested is documented. * Probably IMA DAI SDK */ type AdEvent = Event & { g: boolean; stopped?: boolean; loadTime?: number; originalEvent?: Event & { o: AdObject; j?: { adBreakDuration: number; adPosition: number; currentTime: number; duration: number; totalAds: number; }; type: | Record<google.ima.dai.api.StreamEvent.Type, string> | "contentResumeRequested" | "contentPauseRequested"; }; type: Record<shaka.ads.AdManager, string>; }; /** * @event shaka.ads.AdManager.AdStartedEvent * @description Fired when an ad has started playing. * @property {string} type - 'ad-started' * @property {!shaka.extern.IAd} ad - The ad that has started playing. * @property {Object} sdkAdObject - The ad object in the SDK format, if there is one. * @property {Object} originalEvent - The native SDK event, if available. */ type AdStartedEvent = AdEvent & { ad: shaka.extern.IAd; sdkAdObject: { j: AdObject }; };