import type { PluginHandle } from '../../../attach'; import type { MakeHandle, Publisher } from '..'; /** * Janus-specific resolution spec strings, for convenience. * Using these strings will utilise the client'sdefault video device. */ export declare type VideoResolution = 'lowres' | 'lowres-16:9' | 'stdres' | 'stdres-16:9' | 'hires' | 'hires-16:9'; /** * Offer an exact deviceId - applicable to both video and audio */ export declare type DeviceOffer = { deviceId: { exact: string; }; }; /** * A video offer can be false ("muted"), true ("use default"), a resolution, or an exact device ID */ export declare type VideoOffer = boolean | VideoResolution | DeviceOffer; /** * An audio offer can be false ("muted"), true ("use default"), or an exact device ID */ export declare type AudioOffer = boolean | DeviceOffer; /** * An offer can have one or both of video and audio offers */ export declare type Offer = (offer: { video?: VideoOffer; audio?: AudioOffer; }) => void; /** * The structure of extra data / functionality attached to our Publisher PluginHandle */ export declare type PublishSpec = { room: number; offer: Offer; id?: number; privateId?: number; initPublishers?: Publisher[]; }; /** * Publisher factory function */ export default function (make: MakeHandle): (opaqueId: string) => Promise>;