import { type Dispatch, type ReactNode, type FC } from 'react'; import type { AudioTrack, TextTrack, VideoTrack } from 'react-native-video'; import type { CustomVideoTrack } from '../types'; /** * Represents the state of the SettingsProvider. */ interface SettingsProviderState { /** * Whether the settings menu is visible. */ isSettingsMenuVisible: boolean; /** * The current video videoTrack setting. */ videoTrack: CustomVideoTrack | VideoTrack | null; /** * The list of available video videoTracks. */ videoTracks: (CustomVideoTrack | VideoTrack)[]; /** * The current audio track setting. */ audioTrack: AudioTrack | null; /** * The list of available audio tracks. */ audioTracks: AudioTrack[]; /** * The current subtitle track setting. */ textTrack: TextTrack | null; /** * The list of available subtitle tracks. */ textTracks: TextTrack[]; /** * The current playback rate setting. */ playbackRate: number; } /** * Represents the actions that can be dispatched to the settings reducer. */ type SettingsAction = { type: 'SET_VIDEO_TRACK'; payload: CustomVideoTrack | VideoTrack | null; } | { type: 'SET_AVAILABLE_VIDEO_TRACKS'; payload: (CustomVideoTrack | VideoTrack)[]; } | { type: 'SET_AUDIO_TRACK'; payload: AudioTrack | null; } | { type: 'SET_AVAILABLE_AUDIO_TRACKS'; payload: AudioTrack[]; } | { type: 'SET_TEXT_TRACK'; payload: TextTrack | null; } | { type: 'SET_AVAILABLE_TEXT_TRACKS'; payload: TextTrack[]; } | { type: 'SET_PLAYBACK_RATE'; payload: number; } | { type: 'OPEN_SETTINGS_SHEET'; } | { type: 'CLOSE_SETTINGS_SHEET'; }; /** * The provider component for the video player settings. * This component provides the settings state to all its children. */ export declare const SettingsProvider: FC<{ children: ReactNode; }>; /** * A hook to use the settings context. * This hook provides access to the settings state and dispatch function. */ export declare const useSettingsContext: () => { state: SettingsProviderState; dispatch: Dispatch; }; export {}; //# sourceMappingURL=SettingsProvider.d.ts.map