remotion
Version:
Make videos programmatically
71 lines (70 loc) • 3.31 kB
TypeScript
import React from 'react';
import type { TSequence } from './CompositionManager.js';
import type { CanUpdateSequencePropStatus, DragOverrideValue, GetDragOverrides, GetEffectDragOverrides, PropStatuses } from './use-schema.js';
export type SequenceManagerContext = {
registerSequence: (seq: TSequence) => void;
unregisterSequence: (id: string) => void;
sequences: TSequence[];
};
export type SequenceManagerRef = {
current: TSequence[];
};
export type SequenceNodePath = Array<string | number>;
export declare const SequenceManager: React.Context<SequenceManagerContext>;
export declare const SequenceManagerRefContext: React.Context<SequenceManagerRef>;
export type VisualModePropStatuses = {
propStatuses: PropStatuses;
};
export type VisualModePropStatusesRef = {
current: PropStatuses;
};
export type VisualModeDragOverrides = {
getDragOverrides: GetDragOverrides;
getEffectDragOverrides: GetEffectDragOverrides;
};
export type VisualModeSetters = {
setDragOverrides: (nodePath: SequencePropsSubscriptionKey, key: string, value: DragOverrideValue) => void;
clearDragOverrides: (nodePath: SequencePropsSubscriptionKey) => void;
setEffectDragOverrides: (nodePath: SequencePropsSubscriptionKey, effectIndex: number, key: string, value: DragOverrideValue) => void;
clearEffectDragOverrides: (nodePath: SequencePropsSubscriptionKey, effectIndex: number) => void;
setPropStatuses: (nodePath: SequencePropsSubscriptionKey, values: (prev: CanUpdateSequencePropsResponse) => CanUpdateSequencePropsResponse) => void;
};
export type CanUpdateEffectPropsResponseTrue = {
canUpdate: true;
callee: string;
importPath: string | null;
effectIndex: number;
props: Record<string, CanUpdateSequencePropStatus>;
};
export type CannotUpdateEffectReason = 'not-found' | 'computed' | 'not-call-expression';
export type CannotUpdateSequenceReason = 'not-found' | 'error';
export type CanUpdateEffectPropsResponseFalse = {
canUpdate: false;
effectIndex: number;
reason: CannotUpdateEffectReason;
};
export type CanUpdateEffectPropsResponse = CanUpdateEffectPropsResponseTrue | CanUpdateEffectPropsResponseFalse;
export type CanUpdateSequencePropsResponseTrue = {
canUpdate: true;
props: Record<string, CanUpdateSequencePropStatus>;
effects: CanUpdateEffectPropsResponse[];
};
export type CanUpdateSequencePropsResponseFalse = {
canUpdate: false;
reason: CannotUpdateSequenceReason;
};
export type CanUpdateSequencePropsResponse = CanUpdateSequencePropsResponseTrue | CanUpdateSequencePropsResponseFalse;
export declare const makeSequencePropsSubscriptionKey: (key: SequencePropsSubscriptionKey) => string;
export declare const VisualModePropStatusesContext: React.Context<VisualModePropStatuses>;
export declare const VisualModePropStatusesRefContext: React.Context<VisualModePropStatusesRef>;
export declare const VisualModeDragOverridesContext: React.Context<VisualModeDragOverrides>;
export declare const VisualModeSettersContext: React.Context<VisualModeSetters>;
export type SequencePropsSubscriptionKey = {
absolutePath: string;
nodePath: SequenceNodePath;
sequenceKeys: string[];
effectKeys: string[][];
};
export declare const SequenceManagerProvider: React.FC<{
readonly children: React.ReactNode;
}>;