import { MutableRefObject } from 'react'; import { StoryWithRowIndex } from '../../stories/models/story'; import { Page } from '../../stories/models/page'; import { AdPage } from '../../ads/models/adPage'; import { AmpKeyPressEvent, AmpPageNavigationEvent, AmpPlayerCloseEvent, AmpStoryNavigationEvent, AmpStoryNoNextStoryEvent, AmpStoryPageVisibleEvent } from '../../../types/ampStories'; import { OpenedReason } from '../../infrastructure/activity/models/openedReason'; import { DismissedReason } from '../../infrastructure/activity/models/dismissedReason'; interface UsePlayerNavigationProps { currentAd: MutableRefObject; currentStory: MutableRefObject; currentPage: MutableRefObject; currentPageId: string; handleAdDismissed: (dismissedReason: DismissedReason) => void; handlePlayerClose: () => void; hasRecentNavigationSwipe: () => boolean; pageOpenedReasonOverride: MutableRefObject; previousStory: MutableRefObject; previousPage: MutableRefObject; previousPageWasAnAd: MutableRefObject; resetCurrentStoryAndPage: () => void; playerStories: StoryWithRowIndex[] | null; setCurrentStory: (story: StoryWithRowIndex) => void; setCurrentPage: (page: Page) => void; setCurrentPageId: (pageId: string) => void; setLightBoxAnimationIsEnabled: (shouldAnimate: boolean) => void; setPlayerIsLoaded: () => void; } declare const usePlayerNavigation: ({ currentAd, currentStory, currentPage, currentPageId, handleAdDismissed, handlePlayerClose, hasRecentNavigationSwipe, pageOpenedReasonOverride, playerStories, previousStory, previousPage, previousPageWasAnAd, resetCurrentStoryAndPage, setCurrentStory, setCurrentPage, setCurrentPageId, setLightBoxAnimationIsEnabled, setPlayerIsLoaded, }: UsePlayerNavigationProps) => { closeStoryView: (dismissedReason: DismissedReason, shouldAnimate?: any) => void; handleStoryNavigation: (event: AmpStoryNavigationEvent) => void; handleAmpPlayerClose: (event: AmpPlayerCloseEvent) => void; handlePlayerKeyPressed: (event: AmpKeyPressEvent) => void; handlePageNavigation: (event: AmpPageNavigationEvent) => void; handleStoryPageVisible: (event: AmpStoryPageVisibleEvent) => void; handleNoNextStory: (event: AmpStoryNoNextStoryEvent) => void; handleSetFinalStoryIndex: () => void; }; export default usePlayerNavigation;