@signalwire/js
Version:
30 lines • 1.64 kB
TypeScript
import { BaseConnectionContract, RoomLeft, RoomLeftEventParams, BaseConnectionState } from '@signalwire/core';
import { BaseConnection, MediaEventNames } from '@signalwire/webrtc';
import { RoomSessionDeviceMethods } from './utils/interfaces';
type RoomSessionDeviceEventsHandlerMap = Record<BaseConnectionState, (params: RoomSessionDevice) => void> & Record<RoomLeft, (params?: RoomLeftEventParams) => void> & Record<MediaEventNames, () => void>;
export type RoomSessionDeviceEvents = {
[k in keyof RoomSessionDeviceEventsHandlerMap]: RoomSessionDeviceEventsHandlerMap[k];
};
/** @deprecated Use {@link RoomSessionDevice} instead */
export interface RoomDevice extends RoomSessionDevice {
}
export interface RoomSessionDevice extends RoomSessionDeviceMethods, BaseConnectionContract<RoomSessionDeviceEvents> {
join(): Promise<void>;
leave(): Promise<void>;
/** @internal */
runWorker: BaseConnection<RoomSessionDeviceEvents>['runWorker'];
}
export declare class RoomSessionDeviceConnection extends BaseConnection<RoomSessionDeviceEvents> {
join(): Promise<unknown>;
leave(): Promise<void>;
}
/**
* A RoomSessionDevice represents a device (such as a microphone or a camera)
* that is at some point in its lifetime part of a {@link RoomSession}. You can
* obtain a RoomSessionDevice from the {@link RoomSession} methods
* {@link RoomSession.addCamera}, {@link RoomSession.addMicrophone}, and
* {@link RoomSession.addDevice}.
*/
export declare const RoomSessionDeviceAPI: import("@signalwire/core").ConstructableType<RoomSessionDeviceConnection>;
export {};
//# sourceMappingURL=RoomSessionDevice.d.ts.map