@applicaster/quick-brick-player
Version:
Quick Brick Player
177 lines (164 loc) • 4.97 kB
TypeScript
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 };
};