import type { ExporterSettings, Project } from './Project'; import type { StageSettings } from './Stage'; import { Stage } from './Stage'; import { TimeEstimator } from './TimeEstimator'; export interface RendererSettings extends StageSettings { name: string; range: [number, number]; fps: number; exporter: ExporterSettings; hiddenFolderId?: string; } export interface AssetInfo { key: string; type: 'video' | 'audio'; src: string; playbackRate: number; volume: number; currentTime: number; duration: number; decoder?: string | null; } export declare enum RendererState { Initial = 0, Working = 1, Aborting = 2 } export declare enum RendererResult { Success = 0, Error = 1, Aborted = 2 } /** * The rendering logic used by the editor to export animations. * * @remarks * This class uses the `PlaybackManager` to render animations. In contrast to a * player, a renderer does not use an update loop. It plays through the * animation as fast as it can, occasionally pausing to keep the UI responsive. * * The actual exporting is outsourced to an Exporter. */ export declare class Renderer { private project; get onStateChanged(): import("..").SubscribableValueEvent; private readonly state; get onFinished(): import("..").Subscribable>; private readonly finished; get onFrameChanged(): import("..").SubscribableValueEvent; private readonly frame; readonly stage: Stage; readonly estimator: TimeEstimator; private readonly lock; private readonly playback; private readonly status; private readonly sharedWebGLContext; private exporter; private abortController; constructor(project: Project); /** * Returns number of frames that a project will have. */ getNumberOfFrames(settings: RendererSettings): Promise; frameToTime(frame: number): number; timeToFrame(second: number): number; /** * Render the animation using the provided settings. * * @param settings - The rendering settings. */ render(settings: RendererSettings): Promise; /** * Abort the ongoing render process. */ abort(): void; /** * Export an individual frame. * * @remarks * This method always uses the default `ImageExporter`. * * @param settings - The rendering settings. * @param time - The timestamp to export. */ renderFrame(settings: RendererSettings, time: number): Promise; private run; private reloadScenes; private exportFrame; private getMediaByFrames; } //# sourceMappingURL=Renderer.d.ts.map