import React from 'react';
interface VideoControlActions {
    videoRef: React.RefObject<HTMLVideoElement | null>;
    setCurrentTime: (time: number) => void;
    setIsLive: (live: boolean) => void;
    seekTo: (time: number) => void;
    play: () => Promise<void>;
    pause: () => void;
    togglePlay: () => void;
}
interface VideoControlState {
    currentTime: number;
    isLive: boolean;
    isPlaying: boolean;
    duration: number;
    canSeek: boolean;
}
interface VideoControlContextValue extends VideoControlActions, VideoControlState {
}
export interface VideoControlProviderProps {
    children: React.ReactNode;
}
/**
 * Provider that connects VideoPlayer and VideoTimeline components.
 * Wrap both components with this provider to enable synchronization.
 *
 * @example
 * ```tsx
 * import { VideoControlProvider, VideoPlayer, VideoTimeline } from 'visio-io-design-system';
 *
 * function App() {
 *   return (
 *     <VideoControlProvider>
 *       <VideoPlayer stream={stream} />
 *       <VideoTimeline />
 *     </VideoControlProvider>
 *   );
 * }
 * ```
 */
export declare const VideoControlProvider: React.FC<VideoControlProviderProps>;
/**
 * Hook to access video control context.
 * Use this hook in components that need to control or observe video state.
 * Returns the merged actions + state for backward compatibility.
 *
 * @returns VideoControlContextValue or null if not inside a VideoControlProvider
 */
export declare const useVideoControl: () => VideoControlContextValue | null;
/**
 * Hook that throws an error if not inside a VideoControlProvider.
 * Use this when the component requires the context to function.
 *
 * @returns VideoControlContextValue
 * @throws Error if not inside a VideoControlProvider
 */
export declare const useVideoControlRequired: () => VideoControlContextValue;
export {};
