import { clContext as nodenCLContext } from 'nodencl'; import { ClJobs } from '../clJobQueue'; import { LoadParams } from '../chanLayer'; import { VideoFormat } from '../config'; import { Mixer } from './mixer'; export interface Producer { initialise(): void; getMixer(): Mixer; setPaused(pause: boolean): void; release(): void; } export interface ProducerFactory { createProducer(id: number, params: LoadParams, clJobs: ClJobs, consumerFormat: VideoFormat): T; } export declare class InvalidProducerError extends Error { constructor(message?: string); } export declare class ProducerRegistry { private readonly producerFactories; private producerID; constructor(clContext: nodenCLContext); createSource(params: LoadParams, consumerFormat: VideoFormat, clJobs: ClJobs): Promise; }