agora-classroom-sdk
Version:
For publishing npm package agora-classroom-sdk (Web & Electron). Get more information from https://docs.agora.io
49 lines (48 loc) • 1.55 kB
TypeScript
import { WindowID } from '../api';
import type { IpcRendererEvent } from 'electron';
import { ChannelType } from './ipc-channels';
declare type ChannelMessage = {
type: string;
payload?: unknown;
};
declare type ChannelMessageCallback = (event: IpcRendererEvent, message: ChannelMessage, ...args: any) => void;
declare type ChannelMessageListenerOptions = {
once?: boolean;
};
declare type RTCRawDataCallback = (event: IpcRendererEvent, payload: unknown) => void;
export declare const withTimeout: <T>(p: Promise<T>, detail: unknown, timeout?: number) => Promise<T>;
/**
* 打开窗口
* @param channel
* @param args
* @returns
*/
export declare const sendToMainProcess: (channel: ChannelType, ...args: unknown[]) => Promise<unknown>;
/**
* 发送消息到指定窗口
* @param windowID
* @param args
* @returns
*/
export declare const sendToRendererProcess: (windowID: WindowID, channel: ChannelType, message: ChannelMessage) => Promise<unknown>;
/**
* 监听主进程消息
* @param channel
* @param callback
* @param options
* @returns
*/
export declare const listenChannelMessage: (channel: ChannelType, callback: ChannelMessageCallback, options?: ChannelMessageListenerOptions | undefined) => () => void;
/**
* RTC裸数据传输
* @param windowID
* @param payload
*/
export declare const transmitRTCRawData: (windowID: WindowID, payload: unknown) => void;
/**
* 接收RTC裸数据
* @param callback
* @returns
*/
export declare const receiveRTCRawData: (callback: RTCRawDataCallback) => () => void;
export {};