import Device from './Device'; /** * A device that applies processing to another device. */ export default interface VideoTransformDevice { /** * `stop` should be called to free any resources associated with the device. * It must be called if `applyProcessors` is ever called. */ stop(): Promise; /** * Returns the inner {@link Device} that the device controller should select as active video device. */ intrinsicDevice(): Promise; /** * Starts processing the input `MediaStream` and returns the output `MediaStream`. */ applyProcessors(mediaStream?: MediaStream): Promise; /** * `outputMediaStream` is generated after processors are applied. It will be auto-released after `stop` is called. */ readonly outputMediaStream: MediaStream; } /** * `isVideoTransformDevice` is a type guard for {@link VideoTransformDevice}. * * @param device the value to check. */ export declare function isVideoTransformDevice(device: unknown): device is VideoTransformDevice;