import { createMapStore, StreamLayerContext } from '@streamlayer/sdk-web-interfaces'; import { QuestionType } from '@streamlayer/sdk-web-types'; export type UIData = { stage: 'activate' | 'deactivate'; id: string; isViewed?: boolean; hasNotification?: boolean; type: 'advertisement' | 'insight' | 'poll' | 'trivia' | 'prediction' | 'tweet' | 'question'; hasBanner?: boolean; isAd?: boolean; }; export type OnContentActivateCallback = (renderData: UIData) => void; export type UIState = { promotionExternalAd?: boolean; promotionSidebar?: boolean; promotionSideBySide?: boolean; promotionOverlay?: boolean; promotionBanner?: boolean; promotionNotification?: boolean; app?: boolean; appSidebar?: boolean; appNotification?: boolean; appBanner?: boolean; onboardingNotification?: boolean; exposedPauseAd?: boolean; polymarket?: boolean; responsiveLayout?: 'mobile' | 'desktop'; }; export interface UIContext { disableApp: () => void; enableApp: () => void; disableAppNotification: () => void; enableAppNotification: () => void; disableOnboardingNotification: () => void; enableOnboardingNotification: () => void; onContentActivate?: OnContentActivateCallback; enableExposedPauseAd: () => void; disableExposedPauseAd: () => void; enablePolymarket: () => void; disablePolymarket: () => void; } declare module '@streamlayer/sdk-web-interfaces' { interface StreamLayerContext { ui: UIContext; onQuestionActivate: (params: Omit & { type?: string; questionType?: QuestionType; isAd?: boolean; }) => void; } interface StreamLayerSDK { uiState: ReturnType>; uiHandlers: Pick; } } export declare const ui: (instance: StreamLayerContext, opts: { onContentActivate?: OnContentActivateCallback; withAdNotification?: boolean; withAd?: boolean; mobileBreakpoint?: number; }, done: () => void) => void;