@salutejs/jazz-sdk-electron-plugins
Version:
Jazz SDK electron plugins
149 lines (143 loc) • 4.2 kB
TypeScript
import {
MediaType,
Query,
JazzRoom,
JazzClient,
JazzSdk,
JazzSdkPlugin,
} from '@salutejs/jazz-sdk-web';
import { Observable } from 'rxjs';
type JazzSdkMediaAccessType = 'microphone' | 'camera' | 'screen';
type JazzSdkMediaAccessStatus =
| 'not-determined'
| 'granted'
| 'denied'
| 'restricted'
| 'unknown';
type JazzSdkAskForMediaAccessType = 'microphone' | 'camera';
type JazzSdkSystemSettingsKey =
| 'microphone-security'
| 'camera-security'
| 'screen-share-security';
type JazzSdkDesktopCapturerSourcesEventUpdateSources = {
type: 'updateSources';
payload: {
sources: JazzSdkDesktopCapturerSource[];
added: JazzSdkDesktopCapturerSource[];
removed: JazzSdkDesktopCapturerSource[];
};
};
type ProcessType = {
frameId: number;
images: JazzSdkDesktopCapturerOptionImages;
};
type JazzSdkDesktopCapturerSourcesEventStartProcess = {
type: 'startProcess';
payload: ProcessType;
};
type JazzSdkDesktopCapturerSourcesEventFinishProcess = {
type: 'finishProcess';
payload: ProcessType;
};
type JazzSdkDesktopCapturerOptionImages =
| {
isEnable: false;
}
| {
isEnable: true;
thumbnailSize: {
height: number;
width: number;
};
};
type JazzSdkDesktopCapturerOptions = Readonly<{
types: Array<'window' | 'screen'>;
images: JazzSdkDesktopCapturerOptionImages;
}>;
type JazzSdkDesktopCapturerSourceType = 'screen' | 'window';
type JazzSdkDesktopCapturerSource = Readonly<{
id: string;
type: JazzSdkDesktopCapturerSourceType;
name: string;
displayId: string;
image?: string;
}>;
type JazzSdkDesktopCapturerEventSelectDesktopSource = {
type: 'selectDesktopSource';
payload: {
source: JazzSdkDesktopCapturerSource;
isShareDisplayAudio: boolean;
};
};
type JazzSdkDesktopCapturerEventCancel = {
type: 'cancel';
payload: {
action: 'cancel';
};
};
type JazzSdkDesktopCapturerEventSources = {
type: 'sources';
payload: {
sources: JazzSdkDesktopCapturerSource[];
};
};
type JazzSdkDesktopCapturerEventUpdateSources =
JazzSdkDesktopCapturerSourcesEventUpdateSources;
type JazzSdkDesktopCapturerEventStartProcess =
JazzSdkDesktopCapturerSourcesEventStartProcess;
type JazzSdkDesktopCapturerEventFinishProcess =
JazzSdkDesktopCapturerSourcesEventFinishProcess;
type JazzSdkDesktopCapturerEvent =
| JazzSdkDesktopCapturerEventSelectDesktopSource
| JazzSdkDesktopCapturerEventCancel
| JazzSdkDesktopCapturerEventUpdateSources
| JazzSdkDesktopCapturerEventStartProcess
| JazzSdkDesktopCapturerEventFinishProcess
| JazzSdkDesktopCapturerEventSources;
type JazzSdkDesktopCapturerService = {
getMediaAccessStatus: (
type: JazzSdkMediaAccessType,
) => Promise<JazzSdkMediaAccessStatus>;
requestDesktopMediaAccess: (
type: MediaType,
) => Promise<JazzSdkMediaAccessStatus>;
status: Query<JazzSdkDesktopCapturerStatus>;
sources: Query<JazzSdkDesktopCapturerSource[]>;
accessStatus: Query<JazzSdkMediaAccessStatus | undefined>;
isSupportedShareDisplayAudio: Query<boolean>;
selectSource: (
source: JazzSdkDesktopCapturerSource,
isShareDisplayAudio?: boolean,
) => void;
openSystemSettings: (type: JazzSdkSystemSettingsKey) => Promise<void>;
cancel: () => void;
event$: Observable<JazzSdkDesktopCapturerEvent>;
};
type JazzSdkDesktopCapturerStatus = 'started' | 'finished' | 'pending';
type JazzSdkDesktopPicker = {
onSourceChoose: (
streamId?: string,
streamType?: string,
screenShareAudio?: boolean,
) => void;
};
declare function getDesktopCapturer(
sdk: JazzRoom | JazzClient | JazzSdk,
): JazzSdkDesktopCapturerService;
declare function desktopCapturerPlugin(): JazzSdkPlugin;
export {
type JazzSdkAskForMediaAccessType,
type JazzSdkDesktopCapturerEvent,
type JazzSdkDesktopCapturerEventCancel,
type JazzSdkDesktopCapturerEventSelectDesktopSource,
type JazzSdkDesktopCapturerOptions,
type JazzSdkDesktopCapturerService,
type JazzSdkDesktopCapturerSource,
type JazzSdkDesktopCapturerStatus,
type JazzSdkDesktopPicker,
type JazzSdkMediaAccessStatus,
type JazzSdkMediaAccessType,
type JazzSdkSystemSettingsKey,
desktopCapturerPlugin,
getDesktopCapturer,
};