import { ReactNode } from 'react';
import { VideoApiErrorSource, VideoPluginCallbacks, VideoPluginConfig, VideoPluginDependencies } from '../types';
interface VideoContextValue {
    config: VideoPluginConfig;
    dependencies: VideoPluginDependencies;
    callbacks?: VideoPluginCallbacks;
    registerUpload: (uploadId: string) => void;
    unregisterUpload: (uploadId: string) => void;
    isUploading: boolean;
    uploadingCount: number;
    reportError: (error: unknown, source: VideoApiErrorSource, videoId?: string) => void;
}
interface VideoPluginProviderProps {
    config: VideoPluginConfig;
    dependencies: VideoPluginDependencies;
    callbacks?: VideoPluginCallbacks;
    children: ReactNode;
}
export declare function VideoPluginProvider({ config, dependencies, callbacks, children, }: VideoPluginProviderProps): import("react/jsx-runtime").JSX.Element;
export declare function useVideoPluginContext(): VideoContextValue;
export declare function useVideoPluginDependencies(): VideoPluginDependencies;
export declare function useVideoPluginConfig(): VideoPluginConfig;
export {};
//# sourceMappingURL=VideoContext.d.ts.map