import type { ComponentClass } from 'react'; import type { DeepLink, EngagementScreenProps, NavigateToPost } from './EngagementComp'; import type { EngagementServiceConfig } from './EngagementService'; import { EngagementService } from './EngagementService'; import type { VideoModalSource } from './inboxblocks/ImageWithOverlay'; import type { ComponentList } from './types'; import type { PortalComponents } from '../../libs/engagement-utils'; declare type DeeplinkMethod = 'open' | 'push'; export interface EngagementOptions { path?: string; deepLinkMethod?: DeeplinkMethod; } export interface EngagementSettings extends EngagementServiceConfig { components?: ComponentList; options?: EngagementOptions; createEnvironment?: 'prod' | 'uat'; portalComponents?: PortalComponents; handleDeepLink?: (data: DeepLink) => void; handleNavigateToPost?: (data: NavigateToPost) => void; handleBackPress?: (postID?: string) => void; handleVideoModalOpen?: (video: VideoModalSource) => void; } export interface EngagementUtilities { engagementService: EngagementService; EngagementComp: ComponentClass; } export * from './EngagementCompGhost'; /** * * @param params */ declare const initEngagement: (params: EngagementSettings) => EngagementUtilities; export default initEngagement; export type { AnalyticsEvent, BlockItem, DynamicData, EngagementMessage, InboxBlock, InjectedProps, JSON as EngagementJSON, FeedTags, FeedsAttributes, FeedsComponentProps, FeedsStoryComponentProps, FetchContentPayload, FetchEngagementInboxResponse, NavTag, FeedsRef, } from './types'; export type { EngagementScreenProps, NavigateToPost, DeepLink } from './EngagementComp'; export { useAnalyticsEvent } from './hooks';