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