import type { ComponentClass } from 'react'; import type { StyleProp, ViewStyle } from 'react-native'; import { Animated } from 'react-native'; import type { EngagementService } from './EngagementService'; import type { ComponentList, DynamicData, EmitterProps, JSON, ScreenProps } from './types'; declare type DeeplinkMethod = 'open' | 'push'; export interface EngagementScreenProps extends ScreenProps, EmitterProps { json: JSON; backButton?: boolean; noScrollView?: boolean; navBarTitle?: string; renderType?: string; refreshControl?: () => void; isLoading: boolean; autoplay?: boolean; autoplayDelay?: number; autoplayInterval?: number; storyType?: string; tabbedItems?: unknown[]; lastUpdate?: number; containerStyle?: StyleProp; onBack?: () => void; language?: string; welcomeHeader?: boolean; headerName?: string; cardPosition?: number; windowWidth?: number; dynamicData?: DynamicData; renderHeader?: () => void; discoverPath?: string; deepLinkMethod?: DeeplinkMethod; renderBackButton?: (handleBackPress: () => void) => void; } export interface EngagementState { scrollY: Animated.Value; pageNum: number; showCarousel: boolean; showDarkX: boolean; slideBackground: boolean; activeProgressBarIndex: number; scrollEnabled: boolean; isLoading: boolean; } export interface DeepLink { url: string; tag?: string; } export interface NavigateToPost { postId: string; json: JSON; title: string; dynamicData?: DynamicData; path?: string; tag?: string; } /** * * @param api * @param layoutComponents * @param handleDeepLink * @param handleNavigateToPost * @param handleBackPress */ export default function (api: EngagementService, layoutComponents: ComponentList, handleDeepLink?: (data: DeepLink) => void, handleNavigateToPost?: (data: NavigateToPost) => void, handleBackPress?: () => void): ComponentClass; export {};