import React, { ReactNode } from 'react'; import { CreateLocalTrackOptions, ConnectOptions, LocalAudioTrack, LocalVideoTrack, Room } from 'twilio-video'; import { ErrorCallback } from '../../types'; import { BackgroundSettings } from './useBackgroundSettings/useBackgroundSettings'; export interface IVideoContext { room: Room | null; localTracks: (LocalAudioTrack | LocalVideoTrack)[]; isConnecting: boolean; connect: (token: string) => Promise; onError: ErrorCallback; getLocalVideoTrack: (newOptions?: CreateLocalTrackOptions) => Promise; getLocalAudioTrack: (deviceId?: string) => Promise; isAcquiringLocalTracks: boolean; removeLocalVideoTrack: () => void; isSharingScreen: boolean; toggleScreenShare: () => void; getAudioAndVideoTracks: () => Promise; isBackgroundSelectionOpen: boolean; setIsBackgroundSelectionOpen: (value: boolean) => void; backgroundSettings: BackgroundSettings; setBackgroundSettings: (settings: BackgroundSettings) => void; } export declare const VideoContext: React.Context; interface VideoProviderProps { options?: ConnectOptions; onError: ErrorCallback; children: ReactNode; } export declare function VideoProvider({ options, children, onError }: VideoProviderProps): JSX.Element; export {};