///
import { JpegConfig, PngConfig } from 'canvas';
import type { DrawerCanvas } from './DrawerCanvas';
import { Emitter } from './Emitter';
import { IRendererEvents, TRendererVideoType } from './types';
/**
* Blob or Buffer
*
* @category Renderer
*/
export declare type BoB = Blob | Buffer;
/**
* Options or Quality
*
* @category Renderer
*/
export declare type OoQ = PngConfig | JpegConfig | number;
/**
* The Renderer is a class for exporting the scene
*
* @category Renderer
* @class Renderer
* @extends {Emitter}
*/
declare class Renderer extends Emitter {
private ffmpeg;
private drawer;
private ffmpegCorePath;
constructor(drawer: DrawerCanvas, ffmpegCorePath?: string);
/**
* Render any frame and create array of zip
*
* @param imagesType
* @param quality
* @param framesForChunk
* @returns
*/
zip(imagesType?: 'image/jpeg' | 'image/png', quality?: number, framesForChunk?: number): Promise>;
/**
* Render animation
*
* @param type render type
* @param quality
* @param ffmpegLogger
* @param ffmpegProgress
* @returns
*/
render(type?: TRendererVideoType, quality?: number, ffmpegLogger?: (logParams: {
type: string;
message: string;
}) => any, ffmpegProgress?: (progressParams: {
ratio: number;
}) => any): Promise;
/**
* Render frame `frameNumber` to Blob or Buffer
*
* @param frameNumber frame to render
* @param mime image type
* @param options quality or options
* @returns Promise of Blob for browser or Buffer for Node
*/
frame(frameNumber: number, mime?: 'image/png' | 'image/jpeg', options?: OoQ): Promise;
/**
* Render frame at time to Blob or Buffer
*
* @param time animation time
* @param mime image type
* @param options quality or options
* @returns Promise of Blob for browser or Buffer for Node
*/
frameAtTime(time: number, mime?: 'image/png' | 'image/jpeg', options?: OoQ): Promise;
/**
* Render frame number to DataUrl
*
* @param frameNumber frame to render
* @param mime image type
* @param options quality or options
* @returns string image
*/
frameToDataUrl(frameNumber: number, mime?: 'image/png' | 'image/jpeg', options?: OoQ): null | string;
/**
* Render a frame at `time` to DataUrl
*
* @param time of animation
* @param mime image type
* @param options quality or options
* @returns string image
*/
frameAtTimeToDataUrl(time: number, mime?: 'image/png' | 'image/jpeg', options?: OoQ): null | string;
/**
* Canvas to DataURL
*
* @param mime
* @param optionsOrQuality
* @returns
*/
private toDataUrl;
/**
* Canvas to BoB
*
* @param mime
* @param optionsOrQuality
* @returns
*/
private blobOrBuffer;
}
export { Renderer };
//# sourceMappingURL=Renderer.d.ts.map