UNPKG

2.64 kBTypeScriptView Raw
1import React, { ComponentType, LazyExoticComponent } from 'react';
2export declare type TComposition<T = unknown> = {
3 width: number;
4 height: number;
5 fps: number;
6 durationInFrames: number;
7 id: string;
8 folderName: string | null;
9 parentFolderName: string | null;
10 component: LazyExoticComponent<ComponentType<T>>;
11 defaultProps: T | undefined;
12 nonce: number;
13};
14export declare type TCompMetadata = Pick<TComposition, 'id' | 'height' | 'width' | 'fps' | 'durationInFrames' | 'defaultProps'>;
15export declare type SmallTCompMetadata = Pick<TComposition, 'id' | 'height' | 'width' | 'fps' | 'durationInFrames'>;
16declare type EnhancedTSequenceData = {
17 type: 'sequence';
18} | {
19 type: 'audio';
20 src: string;
21 volume: string | number;
22 doesVolumeChange: boolean;
23 startMediaFrom: number;
24} | {
25 type: 'video';
26 src: string;
27 volume: string | number;
28 doesVolumeChange: boolean;
29 startMediaFrom: number;
30};
31export declare type TSequence = {
32 from: number;
33 duration: number;
34 id: string;
35 displayName: string;
36 parent: string | null;
37 rootId: string;
38 showInTimeline: boolean;
39 nonce: number;
40 showLoopTimesInTimeline: number | undefined;
41} & EnhancedTSequenceData;
42export declare type TAsset = {
43 type: 'audio' | 'video';
44 src: string;
45 id: string;
46 frame: number;
47 volume: number;
48 mediaFrame: number;
49 playbackRate: number;
50};
51export declare type RenderAssetInfo = {
52 assets: TAsset[][];
53 imageSequenceName: string;
54 firstFrameIndex: number;
55 downloadDir: string;
56};
57export declare type CompositionManagerContext = {
58 compositions: TComposition[];
59 registerComposition: <T>(comp: TComposition<T>) => void;
60 unregisterComposition: (name: string) => void;
61 registerFolder: (name: string, parent: string | null) => void;
62 unregisterFolder: (name: string, parent: string | null) => void;
63 currentComposition: string | null;
64 setCurrentComposition: (curr: string) => void;
65 registerSequence: (seq: TSequence) => void;
66 unregisterSequence: (id: string) => void;
67 registerAsset: (asset: TAsset) => void;
68 unregisterAsset: (id: string) => void;
69 sequences: TSequence[];
70 assets: TAsset[];
71 folders: TFolder[];
72};
73export declare const CompositionManager: React.Context<CompositionManagerContext>;
74export declare const compositionsRef: React.RefObject<{
75 getCompositions: () => TCompMetadata[];
76}>;
77export declare type TFolder = {
78 name: string;
79 parent: string | null;
80};
81export declare const CompositionManagerProvider: React.FC<{
82 children: React.ReactNode;
83}>;
84export {};