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 `transformStream` is ever called.
     */ stop ( ) : Promise < void > ; /**
     * Returns the inner  Device that the device controller should select as active video device.
      intrinsicDevice ( ) : Promise < Device > ; /**
     * Starts processing the input `MediaStream` and returns the output `MediaStream`.
     */ transformStream ( mediaStream ? ) : Promise < MediaStream > ; /**
     * `onOutputStreamDisconnect` is called when device controller disconnects the transformed video stream.
     */ onOutputStreamDisconnect ( ) : void ; /**
     * `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  VideoTransformDevice .
 *
 *  param device export function isVideoTransformDevice ( device ) { return ( ! ! device && typeof device === 'object' && 'transformStream' in device && 'stop' in device && 'intrinsicDevice' in device ) ; }