export interface Init { brandId: string, eventId: string, playerId: string, applicationKey: string, log?: boolean, root?: HTMLElement | any style?: { model: number, src: string }, media?: SetMediaProps, texts?: { [key in TextKeys]: string | any; }, disableWidgetDrag?: boolean, locale?: string, signature: string, signatureBet: string, host?: string, } export type infoPopupDomKeys = 'infoPopupWrapper' | 'infoPopup' | 'infoPopupHeader' | 'infoPopupBody' | 'infoPopupFooter' | 'infoPopupButtonOptIn' | 'infoPopupButtonOptOut' | 'infoPopupCloseButton' export type infoPopupDOM = { [key in infoPopupDomKeys]: HTMLElement | HTMLDivElement | any; } export interface SetMediaProps { key: 'widget' | 'fullScreenAnimation' | string, type: 'lottie' | 'img' | 'image' | string, src: string, lottieConfig?: any, } export type WidgetDomKeys = 'widgetWrapper' | 'widget' | 'widgetHeader' | 'widgetBody' | 'widgetFooter' | 'widgetCurrentAmount' | 'widgetMediaWrapper' | 'widgetButtonsOptWrapper' | 'widgetButtonOptIn' | 'widgetButtonOptOut' | 'widgetActionsBar' | 'widgetInfoButton' | 'widgetMinimizeButton' | 'widgetMaximizeButton' | 'widgetCloseButton' | 'widgetInfoLabelWrapper' export type WidgetDOM = { [key in WidgetDomKeys]: HTMLElement | HTMLDivElement | any; } export interface PropsRender { root?: HTMLDivElement, style?: { model: number, src: string }, media?: SetMediaProps, disableWidgetDrag?: boolean, } export type TextKeys = 'jackpotName' | 'optInButton' | 'optOutButton' | 'loading' | 'errorDefaultMessage' | 'userInLabel' | 'userOutLabel' | 'winMessage' | 'closeWidgetConfirmMessage' | 'termsAndConditionsContent' | 'termsPopupAcceptButtonLabel' | 'termsPopupGetOutButtonLabel' | 'communityJackpotWin' | 'jackpotWin' export type Texts = { [key in TextKeys]: string; } export type CallbackKeys = 'optin' | 'optOut' | 'updateAmount' | 'userWin' | 'init' | 'mount' | 'communityWin' | 'jackpotWin' export type Callbacks = { [key in CallbackKeys]: Function; } export type CustomCallbacks = { [key in CallbackKeys]: boolean; } export interface BetJackpot { wager: string | number, winner?: boolean } export interface CustomWinAnimation { lottieUrl?: string, cssUrl?: string } export interface Api { get: Function, postOpt: Function, postBet: Function, } export interface displayCommunityJackpotWin { mediaProps?: SetMediaProps, message?: any } export interface displayJackpotWinInterface { mediaProps?: SetMediaProps, message?: any } export interface Jooba { init: ({ }: Init) => void, actions: { optin: Function, optOut: Function, updateText: (key: TextKeys, value: string) => {} | any, updateAllTexts: any, updateStyle: Function, updateWidgetMedia: Function, displayWinner: (props: CustomWinAnimation) => void, displayCommunityWin: (props?: displayCommunityJackpotWin) => void, displayJackpotWin: (props?: displayJackpotWinInterface) => void, betJackpot: Function, destroy: Function, updateWidgetInfoLabel: (message: any) => void }, events: { on: (callback: CallbackKeys, func: Function) => {} | any } } export enum notificationTypeEnum { NORMAL_MAIN = (1), NORMAL_INFORMED = (2), COMMUNITY_MAIN = (3), COMMUNITY_POOL = (4) } export interface winResponse { amount: number, currency: string, notificationType: notificationTypeEnum operator: string, playerId: string, }