UNPKG

@flarelane/flarelane-web-sdk

Version:

FlareLane Web SDK

216 lines (207 loc) 7.4 kB
// Generated by dts-bundle v0.7.3 export default FlareLane; global { interface Window { flarelane_state: { initialized: boolean; initializing: boolean; }; FlareLaneBridge?: any; webkit?: { messageHandlers?: { FlareLaneBridge?: { postMessage: any; }; }; }; FlareLaneDeferred?: ((FlareLane: FlareLane) => any)[]; } } export class FlareLane { static needEscapeInapp: boolean; static setLogLevel(logLevel: LogLevelString): void; static initialize(options: InitializeOptions): Promise<void>; static _directInitializeFromProxy(): Promise<void>; static _proxySubscribe(): Promise<void>; static setUserId(userId: string | null): Promise<true | void>; static setTags(tags: Record<string, any>): Promise<true | void>; static setIsSubscribed(isSubscribed: boolean, callback?: GetIsSubscribeHandler, option?: SubscribeOptions): Promise<void>; static getIsSubscribed(callback: GetIsSubscribeHandler): void; static getDeviceId(callback: GetDeviceIdHandler): void; static setConvertedHandler(callback: ConvertedHandler): void; static setIsSubscribedChangeHandler(callback: IsSubscribedChangeHandler): void; static trackEvent(type: string, data?: Record<string, string | number>): Promise<void>; static setCurrentPath(path: string): void; static toggleWidgetSubcontents(element: HTMLElement): void; } export type GetIsSubscribeHandler = (isSubscribed: boolean) => any; export type GetDeviceIdHandler = (deviceId: string | null) => any; export type ConvertedHandler = (notification: FlareLaneNotifiaction) => any; export type IsSubscribedChangeHandler = (isSubscribed: boolean) => Promise<any> | any; export type PostMessageHandler = (data: PostMessageData, removeEventListener: () => void) => void; export type LogLevelString = 'none' | 'error' | 'verbose'; export type InitializeOptions = { projectId: string; serviceWorkerPath?: string; }; export type InitializeDefaultOptions = { serviceWorkerPath?: string; }; export type CombinedOptions = InitializeDefaultOptions & InitializeOptions; export type Configs = { vapidPayload: { publicKey: string; }; siteName: string | null; siteIcon: string | null; siteBadge: string | null; originSiteUrl: string | null; proxySubdomain: string | null; proxySiteUrl: string | null; directInit: boolean; additionalOrigins: string[]; hidePromotion: boolean; blockedPaths: string[]; enableWebView: boolean; nativePromptConfig: { active: true; perPageViews: number; waitingTimeSecond: number; }; widgetConfig: { active: boolean; color: string; size: number; position: 'left' | 'right'; horizontalMargin: number; verticalMargin: number; mobileSize: number; mobilePosition: 'left' | 'right'; mobileHorizontalMargin: number; mobileVerticalMargin: number; hideIfMobile: boolean; allowedPaths: string[]; customImageUrl: string | null; mobileCustomImageUrl: string | null; }; popupConfig: { active: boolean; title: string; body: string; allowButtonText: string; closeButtonText: string; color: string; retryIntervalDay: number; waitingTimeSecond: number; }; }; export type AvailablePermissionState = 'granted' | 'default' | 'denied' | 'prompt'; export type DOMPosition = { top?: number; right?: number; bottom?: number; left?: number; }; export type CustomIconSize = { desktop?: { width: number; height: number; }; mobile?: { width: number; height: number; }; }; export type SubscribeOptions = { showGrantingPermissionsGuide?: boolean; usingUserGestureDom?: boolean; }; interface ManifestIcon { src: string; sizes: string; type: string; purpose?: 'any' | 'maskable' | 'monochrome'; } interface ManifestRelatedApplication { platform: string; url: string; id?: string; } export interface WebAppManifest { name?: string; short_name?: string; description?: string; icons?: ManifestIcon[]; start_url: string; display?: 'fullscreen' | 'standalone' | 'minimal-ui' | 'browser'; background_color?: string; theme_color?: string; dir?: 'ltr' | 'rtl'; lang?: string; orientation?: 'any' | 'natural' | 'landscape' | 'portrait'; prefer_related_applications?: boolean; related_applications?: ManifestRelatedApplication[]; scope?: string; screenshots?: ManifestIcon[]; } export {}; export type AvailableNotificationEventKeys = 'converted' | 'foregroundReceived' | 'backgroundReceived'; export type AvailableNotificationEvents = 'CONVERTED' | 'FOREGROUND_RECEIVED' | 'BACKGROUND_RECEIVED'; export type EventTypes = Record<AvailableNotificationEventKeys, AvailableNotificationEvents>; export type AvailablePostMessageEventTypeKeys = 'initialized' | 'initializeWithOptionsAndConfigs' | 'db' | 'dbWindow' | 'showPopup' | 'setDissmissed' | 'refreshWidgetState' | 'permission' | 'removeWidgetSubscribe' | 'handlerManagerInit'; export type AvailablePostMessageEventType = 'flarelane_initialized' | 'flarelane_initializeWithOptionsAndConfigs' | 'flarelane_db' | 'flarelane_db_window' | 'flarelane_showPopup' | 'flarelane_setDissmissed' | 'flarelane_refreshWidgetState' | 'flarelane_permission' | 'flarelane_removeWidgetSubscribe' | 'flarelane_handlerManagerInit'; export type PostMessageEventTypes = Record<AvailablePostMessageEventTypeKeys, AvailablePostMessageEventType>; export type PostMessageData = { type: AvailablePostMessageEventType; data: any; id: string; }; export type AvailableIndirectDBEventKeys = 'get' | 'getAll' | 'put' | 'delete' | 'clearTable'; export type AvailableIndirectDBEvent = 'flarelane_get' | 'flarelane_getAll' | 'flarelane_put' | 'flarelane_delete' | 'flarelane_clearTable'; export type DBEvent = Record<AvailableIndirectDBEventKeys, AvailableIndirectDBEvent>; export type DBEventData = { method: AvailableIndirectDBEvent; table: string; key?: string; value?: any; }; export type AvailableIndirectPermissionEventKeys = 'getCurrentPermission' | 'getBrowserPermission'; export type AvailableIndirectPermissionEvent = 'flarelane_getCurrentPermission' | 'flarelane_getBrowserPermission'; export type PermissionEventData = { method: AvailableIndirectPermissionEvent; }; export type FlareLaneNotifiaction = { isFlareLane: boolean; projectId: string; notificationId: string; deviceId: string; title?: string; body: string; url?: string; imageUrl?: string; data: Record<string, any>; buttons?: { label: string; link: string; }[]; platform: string; webPushConfig: { siteName: string | null; siteIcon: string | null; siteBadge: string | null; originSiteUrl: string | null; } | null; }; export type NotificationShowingConfigs = { title: string; options: { body: string; data: FlareLaneNotifiaction; vibrate: number[]; }; }; export type NotificationFromShowingEvent = { title: string; body: string; data: FlareLaneNotifiaction; };