remotion
Version:
Render videos in React
85 lines (84 loc) • 2.64 kB
TypeScript
import React, { ComponentType, LazyExoticComponent } from 'react';
export declare type TComposition<T = unknown> = {
width: number;
height: number;
fps: number;
durationInFrames: number;
id: string;
folderName: string | null;
parentFolderName: string | null;
component: LazyExoticComponent<ComponentType<T>>;
defaultProps: T | undefined;
nonce: number;
};
export declare type TCompMetadata = Pick<TComposition, 'id' | 'height' | 'width' | 'fps' | 'durationInFrames' | 'defaultProps'>;
export declare type SmallTCompMetadata = Pick<TComposition, 'id' | 'height' | 'width' | 'fps' | 'durationInFrames'>;
declare type EnhancedTSequenceData = {
type: 'sequence';
} | {
type: 'audio';
src: string;
volume: string | number;
doesVolumeChange: boolean;
startMediaFrom: number;
} | {
type: 'video';
src: string;
volume: string | number;
doesVolumeChange: boolean;
startMediaFrom: number;
};
export declare type TSequence = {
from: number;
duration: number;
id: string;
displayName: string;
parent: string | null;
rootId: string;
showInTimeline: boolean;
nonce: number;
showLoopTimesInTimeline: number | undefined;
} & EnhancedTSequenceData;
export declare type TAsset = {
type: 'audio' | 'video';
src: string;
id: string;
frame: number;
volume: number;
mediaFrame: number;
playbackRate: number;
};
export declare type RenderAssetInfo = {
assets: TAsset[][];
imageSequenceName: string;
firstFrameIndex: number;
downloadDir: string;
};
export declare type CompositionManagerContext = {
compositions: TComposition[];
registerComposition: <T>(comp: TComposition<T>) => void;
unregisterComposition: (name: string) => void;
registerFolder: (name: string, parent: string | null) => void;
unregisterFolder: (name: string, parent: string | null) => void;
currentComposition: string | null;
setCurrentComposition: (curr: string) => void;
registerSequence: (seq: TSequence) => void;
unregisterSequence: (id: string) => void;
registerAsset: (asset: TAsset) => void;
unregisterAsset: (id: string) => void;
sequences: TSequence[];
assets: TAsset[];
folders: TFolder[];
};
export declare const CompositionManager: React.Context<CompositionManagerContext>;
export declare const compositionsRef: React.RefObject<{
getCompositions: () => TCompMetadata[];
}>;
export declare type TFolder = {
name: string;
parent: string | null;
};
export declare const CompositionManagerProvider: React.FC<{
children: React.ReactNode;
}>;
export {};