/**
 * VideoPlayer - Unified Video Player
 * Supports Vidstack (YouTube, Vimeo, HLS, DASH), Native HTML5, and HTTP Streaming
 */

// Main component
export { VideoPlayer } from './components';

// Controls (can be used standalone with Vidstack)
export { VideoControls } from './components';

// Error Fallback
export {
  VideoErrorFallback,
  createVideoErrorFallback,
} from './components';
export type {
  VideoErrorFallbackProps,
  CreateVideoErrorFallbackOptions,
} from './components';

// Providers (for advanced usage)
export { VidstackProvider, NativeProvider, StreamProvider } from './providers';

// Context (for streaming configuration)
export {
  VideoPlayerProvider,
  useVideoPlayerContext,
} from './context';

// Hooks
export { useVideoPositionCache } from './hooks';
export type {
  UseVideoPositionCacheOptions,
  UseVideoPositionCacheReturn,
} from './hooks';

// Utils
export {
  resolvePlayerMode,
  resolveFileSource,
  isSimpleStreamSource,
  resolveStreamSource,
} from './utils';

// Types
export type {
  // Source types
  VideoSourceUnion,
  UrlSource,
  YouTubeSource,
  VimeoSource,
  HLSSource,
  DASHSource,
  StreamSource,
  BlobSource,
  DataUrlSource,
  // Player types
  PlayerMode,
  AspectRatioValue,
  VideoPlayerProps,
  VideoPlayerRef,
  ErrorFallbackProps,
  // Provider props (internal)
  VidstackProviderProps,
  NativeProviderProps,
  StreamProviderProps,
  // Common types
  CommonPlayerSettings,
  CommonPlayerEvents,
  // File source helper types
  ResolveFileSourceOptions,
  // Context types
  VideoPlayerContextValue,
  VideoPlayerProviderProps,
  SimpleStreamSource,
} from './types';
