import { MutableRefObject } from 'react'; import { IMedia } from '../types'; import { EventMapKeys } from '../types/events'; export declare const PLAYER_ANIMATION_DURATION_MS = 300; export declare const PLAYER_ANIMATION_DURATION_SEC: number; export declare const SLIDE_DURATION_MS = 260; export interface UsePlayerNavigationProps { post: IMedia; onClose: () => void; onPostChange: (post: IMedia | null) => void; openedEventName?: EventMapKeys; closedEventName?: EventMapKeys; navigationEventName?: EventMapKeys; swipeDirection?: 'horizontal' | 'vertical'; } export interface UsePlayerNavigationResult { currentDisplayPost: IMedia; nextDisplayPost: IMedia | null; prevDisplayPost: IMedia | null; isMuted: boolean; isPlaying: boolean; isVisible: boolean; isClosing: boolean; showNextIndicator: boolean; thumbnailImage: string | null | undefined; hasUserInteractedRef: MutableRefObject; slideOffset: number; isSliding: boolean; /** CSS axis used for the slide transition — 'X' for horizontal, 'Y' for vertical. */ slideAxis: 'X' | 'Y'; handleClose: () => void; handleNextPost: () => void; handlePreviousPost: () => void; toggleMute: () => void; togglePlay: () => void; } /** * Shared hook for player navigation logic. * Used by both MobilePlayer and DesktopProductListPlayer. */ declare const usePlayerNavigation: ({ post, onClose, onPostChange, openedEventName, closedEventName, navigationEventName, swipeDirection, }: UsePlayerNavigationProps) => UsePlayerNavigationResult; export default usePlayerNavigation;