UNPKG

remotion

Version:

Make videos programmatically

119 lines (118 loc) • 5.2 kB
import type { InteractivitySchema } from './interactivity-schema.js'; import type { ExtrapolateType, InterpolateOutputOption } from './interpolate.js'; import type { CanUpdateSequencePropsResponse, SequencePropsSubscriptionKey } from './SequenceManager.js'; export type CanUpdateSequencePropStatusStatic = { status: 'static'; codeValue: unknown; keyframeDisplayOffsetAdjustment: number | null; numericExpression?: VideoConfigNumericExpression; }; export type CanUpdateSequencePropStatusKeyframe = { frame: number; value: unknown; frameExpression?: VideoConfigNumericExpression; }; export type VideoConfigNumericExpression = { type: 'literal'; value: number; } | { type: 'video-config-value'; identifier: string; value: number; } | { type: 'video-config-multiplication'; identifier: string; multiplier: number; multiplicand: number; factorPosition: 'left' | 'right'; value: number; } | { type: 'video-config-subtraction'; identifier: string; minuend: number; subtrahend: number; value: number; }; export type CanUpdateSequencePropStatusLinearEasing = { type: 'linear'; }; export type CanUpdateSequencePropStatusStep1Easing = { type: 'step1'; }; export type CanUpdateSequencePropStatusBezierEasing = { type: 'bezier'; x1: number; y1: number; x2: number; y2: number; }; export type CanUpdateSequencePropStatusSpringEasing = { type: 'spring'; allowTail: boolean | null; damping: number; mass: number; stiffness: number; overshootClamping: boolean; durationRestThreshold: number | null; }; export type CanUpdateSequencePropStatusEasing = CanUpdateSequencePropStatusLinearEasing | CanUpdateSequencePropStatusStep1Easing | CanUpdateSequencePropStatusBezierEasing | CanUpdateSequencePropStatusSpringEasing; export declare const DEFAULT_LINEAR_EASING: CanUpdateSequencePropStatusLinearEasing; export type CanUpdateSequencePropStatusClamping = { left: ExtrapolateType; right: ExtrapolateType; }; export type CanUpdateSequencePropStatusInterpolationFunction = 'interpolate' | 'interpolateColors'; export type CanUpdateSequencePropStatusComputed = { status: 'computed'; }; export type CanUpdateSequencePropStatusKeyframed = { status: 'keyframed'; interpolationFunction: CanUpdateSequencePropStatusInterpolationFunction; /** * Added to the timeline track's keyframe display offset and subtracted from * the controlled element's local frame when evaluating the interpolation. * This is non-zero when the useCurrentFrame() call is outside a timing * element that wraps the controlled element. */ keyframeDisplayOffsetAdjustment: number | null; keyframes: CanUpdateSequencePropStatusKeyframe[]; easing: CanUpdateSequencePropStatusEasing[]; clamping: CanUpdateSequencePropStatusClamping; posterize: number | undefined; output: InterpolateOutputOption | undefined; }; export type CanUpdateSequencePropStatusFalse = CanUpdateSequencePropStatusComputed; export type CanUpdateSequencePropStatus = CanUpdateSequencePropStatusStatic | CanUpdateSequencePropStatusKeyframed | CanUpdateSequencePropStatusFalse; export type DragOverrideValue = { readonly type: 'static'; readonly value: unknown; } | { readonly type: 'keyframed'; readonly status: CanUpdateSequencePropStatusKeyframed; }; export type DragOverrides = Record<string, Record<string, DragOverrideValue>>; export type EffectDragOverrides = Record<string, Record<string, DragOverrideValue>>; export type PropStatuses = Record<string, CanUpdateSequencePropsResponse>; export type GetPropStatuses = (nodePath: SequencePropsSubscriptionKey) => Record<string, CanUpdateSequencePropStatus> | undefined; export type GetEffectPropStatuses = (nodePath: SequencePropsSubscriptionKey, effectIndex: number) => Record<string, CanUpdateSequencePropStatus> | undefined; export type GetDragOverrides = (nodePath: SequencePropsSubscriptionKey) => DragOverrides[string]; export type GetEffectDragOverrides = (nodePath: SequencePropsSubscriptionKey, effectIndex: number) => Record<string, DragOverrideValue>; export declare const makeStaticDragOverride: (value: unknown) => DragOverrideValue; export declare const makeKeyframedDragOverride: ({ status, frame, value, defaultEasing, }: { status: CanUpdateSequencePropStatusKeyframed; frame: number; value: unknown; defaultEasing?: CanUpdateSequencePropStatusEasing | undefined; }) => DragOverrideValue; export declare const getStaticDragOverrideValue: (dragOverrideValue: DragOverrideValue | undefined) => unknown; export declare const isKeyframedStatus: (status: CanUpdateSequencePropStatus | null) => status is CanUpdateSequencePropStatusKeyframed; export declare const computeEffectiveSchemaValuesDotNotation: ({ schema, currentValue, overrideValues, propStatus, frame, }: { schema: InteractivitySchema; currentValue: Record<string, unknown>; overrideValues: Record<string, DragOverrideValue>; propStatus: Record<string, CanUpdateSequencePropStatus> | undefined; frame: number | null; }) => { merged: Record<string, unknown>; propsToDelete: Set<string>; };