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<boolean>;
    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;
