import { clContext as nodenCLContext, OpenCLBuffer } from 'nodencl'; import { RedioPipe, RedioEnd } from 'redioactive'; import { Frame } from 'beamcoder'; import { VideoFormat } from '../config'; import { ClJobs } from '../clJobQueue'; export interface AudioMixFrame { frames: Frame[][]; mute: boolean; } export interface AnchorParams { x: number; y: number; } export interface FillParams { xOffset: number; yOffset: number; xScale: number; yScale: number; } export declare type MixerParams = { anchor: AnchorParams; rotation: number; fill: FillParams; volume: number; }; export declare const MixerDefaults: MixerParams; export declare class Mixer { private readonly clContext; private readonly consumerFormat; private readonly clJobs; private transform; private mixAudio; private mixVideo; private audMixFilterer; private mixParams; private srcLevels; private muted; private running; private audDone; private vidDone; constructor(clContext: nodenCLContext, consumerFormat: VideoFormat, clJobs: ClJobs); init(sourceID: string, srcAudio: RedioPipe, srcVideo: RedioPipe, srcFormat: VideoFormat): Promise; release(): void; setMixParams(mixParams: MixerParams): void; setVolume(volume: number, mute?: boolean): boolean; getAudioPipe(): RedioPipe | undefined; getVideoPipe(): RedioPipe | undefined; }