import TypedEmitter from "typed-emitter"; import { DeviceError, DevicesStatus } from "./types"; export type TrackType = "audio" | "video" | "audiovideo"; export type MediaDeviceType = "displayMedia" | "userMedia"; export type DisplayMediaManagerEvents = { deviceReady: (event: { type: TrackType; }, state: ScreenShareDeviceState) => void; deviceStopped: (event: { type: TrackType; }, state: ScreenShareDeviceState) => void; deviceEnabled: (event: { type: TrackType; }, state: ScreenShareDeviceState) => void; deviceDisabled: (event: { type: TrackType; }, state: ScreenShareDeviceState) => void; error: (event: { type: TrackType; error: DeviceError | null; rawError: any; }, state: ScreenShareDeviceState) => void; }; export interface ScreenShareManagerConfig { audioTrackConstraints?: boolean | MediaTrackConstraints; videoTrackConstraints?: boolean | MediaTrackConstraints; } export type ScreenShareMedia = { stream: MediaStream | null; track: MediaStreamTrack | null; enabled: boolean; }; export type ScreenShareDeviceState = { status: DevicesStatus; audioMedia: ScreenShareMedia | null; videoMedia: ScreenShareMedia | null; error: DeviceError | null; }; declare const ScreenShareManager_base: new () => TypedEmitter; export declare class ScreenShareManager extends ScreenShareManager_base { private readonly defaultConfig?; private config?; private data; getSnapshot(): ScreenShareDeviceState; constructor(defaultConfig?: ScreenShareManagerConfig); setConfig(config: ScreenShareManagerConfig): void; private getType; start(config?: ScreenShareManagerConfig): Promise; private setupOnEndedCallback; private onTrackEnded; stop(type: TrackType): Promise; setEnable(type: TrackType, value: boolean): void; } export {}; //# sourceMappingURL=ScreenShareManager.d.ts.map