UNPKG

@livekit/components-core

Version:
19 lines 1.31 kB
import type { AudioCaptureOptions, Room, ScreenShareCaptureOptions, TrackPublishOptions, VideoCaptureOptions } from 'livekit-client'; import { Track } from 'livekit-client'; import type { Observable } from 'rxjs'; export type CaptureOptionsBySource<T extends ToggleSource> = T extends Track.Source.Camera ? VideoCaptureOptions : T extends Track.Source.Microphone ? AudioCaptureOptions : T extends Track.Source.ScreenShare ? ScreenShareCaptureOptions : never; export type MediaToggleType<T extends ToggleSource> = { pendingObserver: Observable<boolean>; toggle: (forceState?: boolean, captureOptions?: CaptureOptionsBySource<T>) => Promise<boolean | undefined>; className: string; enabledObserver: Observable<boolean>; }; export type ToggleSource = Exclude<Track.Source, Track.Source.ScreenShareAudio | Track.Source.Unknown>; export declare function setupMediaToggle<T extends ToggleSource>(source: T, room: Room, options?: CaptureOptionsBySource<T>, publishOptions?: TrackPublishOptions, onError?: (error: Error) => void): MediaToggleType<T>; export declare function setupManualToggle(): { className: string; toggle: (forceState?: boolean) => Promise<void>; enabledObserver: Observable<boolean>; pendingObserver: Observable<boolean>; }; //# sourceMappingURL=mediaToggle.d.ts.map