import { LocalVideoTrack, RemoteVideoTrack, TwilioError } from 'twilio-video'; declare module 'twilio-video' { interface LocalVideoTrack { isSwitchedOff: undefined; setPriority: undefined; } } declare global { interface Window { visualViewport?: { scale: number; }; } interface MediaDevices { getDisplayMedia(constraints: MediaStreamConstraints): Promise; } interface HTMLMediaElement { setSinkId?(sinkId: string): Promise; } interface Error { code: undefined; } } export declare type Callback = (...args: any[]) => void; export declare type ErrorCallback = (error: TwilioError | Error) => void; export declare type IVideoTrack = LocalVideoTrack | RemoteVideoTrack; export declare type RoomType = 'group' | 'group-small' | 'peer-to-peer' | 'go'; export declare type RecordingRule = { type: 'include' | 'exclude'; all?: boolean; kind?: 'audio' | 'video'; publisher?: string; }; export declare type RecordingRules = RecordingRule[];