remotion
Version:
Make videos programmatically
1,278 lines • 60.5 kB
TypeScript
import type { ScheduleAudioNodeResult } from './audio/shared-audio-tags.js';
import { type ScheduleAudioNodeOptions } from './audio/shared-audio-tags.js';
import type { RemotionAudioContextState } from './audio/use-audio-context.js';
import { type CompProps } from './Composition.js';
import type { JsxComponentIdentity, TCompMetadata, TComposition, TRenderAsset, TSequence } from './CompositionManager.js';
import type { CompositionManagerContext } from './CompositionManagerContext.js';
import * as CSSUtils from './default-css.js';
import type { SerializedJSONWithCustomFields } from './input-props-serialization.js';
import { type AssetFieldSchema, type ArrayFieldSchema, type ArrayItemFieldSchema, type InteractivitySchemaField, type InteractivitySchema, type VisibleFieldSchema } from './interactivity-schema.js';
import type { LoggingContextValue } from './log-level-context.js';
import type { RemotionEnvironment } from './remotion-environment-context.js';
import type { OverrideIdToNodePaths, OverrideToNodePathGetters, OverrideToNodeSetters } from './sequence-node-path.js';
import { OverrideIdsToNodePathsGettersContext, OverrideIdsToNodePathsSettersContext } from './sequence-node-path.js';
import type { ResolvedStackLocation } from './sequence-stack-traces.js';
import type { CannotUpdateSequenceReason } from './SequenceManager.js';
import { type CanUpdateEffectPropsResponse, type CanUpdateEffectPropsResponseFalse, type CanUpdateEffectPropsResponseTrue, type CanUpdateSequencePropsResponse, type CanUpdateSequencePropsResponseFalse, type CanUpdateSequencePropsResponseTrue, type SequenceNodePath, type SequencePropsSubscriptionKey, type SequencePropsStatusRemapping, type VideoConfigValues } from './SequenceManager.js';
import * as TimelinePosition from './timeline-position-state.js';
import { type PlaybackRateContextValue, type SetTimelineContextValue, type TimelineContextValue } from './TimelineContext.js';
import { truthy } from './truthy.js';
import type { CanUpdateSequencePropStatusFalse, CanUpdateSequencePropStatusEasing, CanUpdateSequencePropStatusKeyframed, CanUpdateSequencePropStatusStatic, DragOverrideValue, GetDragOverrides, GetEffectDragOverrides, GetEffectPropStatuses, GetPropStatuses, VideoConfigNumericExpression } from './use-schema.js';
import { type CanUpdateSequencePropStatus, type DragOverrides, type EffectDragOverrides, type PropStatuses } from './use-schema.js';
import type { MediaVolumeContextValue, SetMediaVolumeContextValue } from './volume-position-state.js';
import type { WatchRemotionStaticFilesPayload } from './watch-static-file.js';
import { useRemotionContexts } from './wrap-remotion-context.js';
export type { EffectChainState } from './effects/run-effect-chain.js';
export declare const Internals: {
readonly AbsoluteFillElement: import("react").ForwardRefExoticComponent<Omit<import("./AbsoluteFillElement.js").AbsoluteFillElementProps, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
readonly MaxMediaCacheSizeContext: import("react").Context<number | null>;
readonly getMediabunnyInputResourceKey: ({ src, credentials, requestInitFingerprint, revision, }: {
src: string;
credentials: RequestCredentials | null;
requestInitFingerprint: unknown;
revision: string | null;
}) => string;
readonly globalMediaResourceManager: import("./media-resource-manager.js").MediaResourceManager;
readonly makeMediaResourceManager: () => import("./media-resource-manager.js").MediaResourceManager;
readonly MEDIABUNNY_DURATION_VALUE_KEY: "mediabunny-duration";
readonly makeRenderResourceManager: () => import("./render-resource-manager.js").RenderResourceManager;
readonly RenderResourceManagerContext: import("react").Context<import("./render-resource-manager.js").RenderResourceManager | null>;
readonly createRuntimeValueStore: <TSnapshot extends Readonly<Record<string, unknown>>>(initialSnapshot: TSnapshot) => import("./runtime-value-store.js").RuntimeValueStoreController<TSnapshot>;
readonly useUnsafeVideoConfig: () => import("./video-config.js").VideoConfig | null;
readonly useFrameForVolumeProp: (behavior: import("./index.js").LoopVolumeCurveBehavior) => number;
readonly useTimelinePosition: () => number;
readonly useAbsoluteTimelinePosition: () => number;
readonly evaluateVolume: ({ frame, volume, mediaVolume, }: {
frame: number;
volume: import("./volume-prop.js").VolumeProp | undefined;
mediaVolume: number;
}) => number;
readonly getAbsoluteSrc: (relativeSrc: string) => string;
readonly getAnimatedImageDurationInSeconds: ({ resolvedSrc, signal, requestInit, contentType, }: {
resolvedSrc: string;
signal: AbortSignal;
requestInit?: RequestInit | undefined;
contentType: string | null;
}) => Promise<number>;
readonly getAssetDisplayName: (filename: string) => string;
readonly Timeline: typeof TimelinePosition;
readonly validateMediaTrimProps: ({ startFrom, endAt, trimBefore, trimAfter, }: {
startFrom: number | undefined;
endAt: number | undefined;
trimBefore: number | undefined;
trimAfter: number | undefined;
}) => void;
readonly validateMediaProps: (props: {
volume: import("./volume-prop.js").VolumeProp | undefined;
playbackRate: number | undefined;
preservePitch?: boolean | undefined;
}, component: "Audio" | "Html5Audio" | "Html5Video" | "Video") => void;
readonly resolveTrimProps: ({ startFrom, endAt, trimBefore, trimAfter, }: {
startFrom: number | undefined;
endAt: number | undefined;
trimBefore: number | undefined;
trimAfter: number | undefined;
}) => {
trimBeforeValue: number | undefined;
trimAfterValue: number | undefined;
};
readonly VideoForPreview: import("react").ForwardRefExoticComponent<Omit<Omit<import("./index.js").RemotionVideoProps, "onVideoFrame"> & {
readonly onlyWarnForMediaSeekingError: boolean;
readonly onDuration: (src: string, durationInSeconds: number) => void;
readonly pauseWhenBuffering: boolean;
readonly _remotionInternalNativeLoopPassed: boolean;
readonly _remotionInternalStack: string | null;
readonly showInTimeline: boolean;
readonly onVideoFrame: import("./index.js").OnVideoFrame | null;
readonly crossOrigin?: "" | "anonymous" | "use-credentials" | undefined;
}, "ref"> & import("react").RefAttributes<HTMLVideoElement>>;
readonly CompositionManager: import("react").Context<CompositionManagerContext>;
readonly CompositionSetters: import("react").Context<import("./CompositionManagerContext.js").CompositionManagerSetters>;
readonly VisualModePropStatusesContext: import("react").Context<import("./SequenceManager.js").VisualModePropStatuses>;
readonly VisualModePropStatusesRefContext: import("react").Context<import("./SequenceManager.js").VisualModePropStatusesRef>;
readonly VisualModeDragOverridesContext: import("react").Context<import("./SequenceManager.js").VisualModeDragOverrides>;
readonly VisualModeSettersContext: import("react").Context<import("./SequenceManager.js").VisualModeSetters>;
readonly SequenceManager: import("react").Context<import("./SequenceManager.js").SequenceManagerContext>;
readonly SequenceManagerProvider: import("react").FC<{
readonly children: import("react").ReactNode;
}>;
readonly SequenceManagerRefContext: import("react").Context<import("./SequenceManager.js").SequenceManagerRef>;
readonly SequenceRegistrationContext: import("react").Context<boolean>;
readonly CommitOrderInternals: {
compositionManagerMarker: symbol;
compositionMarker: symbol;
folderMarker: symbol;
sequenceManagerMarker: symbol;
sequenceMarker: symbol;
eventName: string;
};
readonly SequenceStackTracesUpdateContext: import("react").Context<import("./sequence-stack-traces.js").UpdateResolvedStackTraceFn>;
readonly baseSchema: {
readonly durationInFrames: {
readonly type: "number";
readonly default: undefined;
readonly min: 1;
readonly step: 1;
readonly hiddenFromList: true;
};
readonly from: {
readonly type: "number";
readonly default: 0;
readonly step: 1;
readonly hiddenFromList: true;
};
readonly trimBefore: {
readonly type: "number";
readonly default: 0;
readonly min: 0;
readonly step: 1;
readonly hiddenFromList: true;
};
readonly freeze: {
readonly type: "number";
readonly default: null;
readonly step: 1;
readonly hiddenFromList: true;
};
readonly hidden: import("./interactivity-schema.js").BooleanFieldSchema;
readonly name: import("./interactivity-schema.js").HiddenFieldSchema;
readonly showInTimeline: import("./interactivity-schema.js").HiddenFieldSchema;
};
readonly sequenceSchema: {
readonly durationInFrames: {
readonly type: "number";
readonly default: undefined;
readonly min: 1;
readonly step: 1;
readonly hiddenFromList: true;
};
readonly from: {
readonly type: "number";
readonly default: 0;
readonly step: 1;
readonly hiddenFromList: true;
};
readonly trimBefore: {
readonly type: "number";
readonly default: 0;
readonly min: 0;
readonly step: 1;
readonly hiddenFromList: true;
};
readonly freeze: {
readonly type: "number";
readonly default: null;
readonly step: 1;
readonly hiddenFromList: true;
};
readonly hidden: import("./interactivity-schema.js").BooleanFieldSchema;
readonly name: import("./interactivity-schema.js").HiddenFieldSchema;
readonly showInTimeline: import("./interactivity-schema.js").HiddenFieldSchema;
readonly layout: {
readonly type: "enum";
readonly default: "absolute-fill";
readonly description: "Layout";
readonly variants: {
readonly 'absolute-fill': {
readonly 'style.transformOrigin': {
readonly type: "transform-origin";
readonly step: 1;
readonly default: "50% 50%";
readonly description: "Transform origin";
};
readonly 'style.translate': {
readonly type: "translate";
readonly step: 1;
readonly default: "0px 0px";
readonly description: "Offset";
};
readonly 'style.scale': {
readonly type: "scale";
readonly max: 100;
readonly step: 0.01;
readonly default: 1;
readonly description: "Scale";
readonly defaultKeyframeOutput: "perceptual-scale";
};
readonly 'style.rotate': {
readonly type: "rotation-css";
readonly step: 1;
readonly default: "0deg";
readonly description: "Rotation";
};
readonly 'style.opacity': {
readonly type: "number";
readonly min: 0;
readonly max: 1;
readonly step: 0.01;
readonly default: 1;
readonly description: "Opacity";
readonly hiddenFromList: false;
};
readonly 'style.borderWidth': {
readonly type: "number";
readonly default: undefined;
readonly min: 0;
readonly step: 1;
readonly description: "Border width";
readonly hiddenFromList: false;
};
readonly 'style.borderStyle': {
readonly type: "enum";
readonly default: "none";
readonly description: "Border style";
readonly variants: {
readonly none: {};
readonly hidden: {};
readonly solid: {};
readonly dashed: {};
readonly dotted: {};
readonly double: {};
readonly groove: {};
readonly ridge: {};
readonly inset: {};
readonly outset: {};
};
};
readonly 'style.borderColor': {
readonly type: "color";
readonly default: undefined;
readonly description: "Border color";
};
readonly 'style.borderRadius': {
readonly type: "number";
readonly default: 0;
readonly min: 0;
readonly step: 1;
readonly description: "Border radius";
readonly hiddenFromList: false;
readonly keyframable: true;
};
readonly 'style.borderTopLeftRadius': {
readonly type: "number";
readonly default: 0;
readonly min: 0;
readonly step: 1;
readonly description: "Top left radius";
readonly hiddenFromList: false;
};
readonly 'style.borderTopRightRadius': {
readonly type: "number";
readonly default: 0;
readonly min: 0;
readonly step: 1;
readonly description: "Top right radius";
readonly hiddenFromList: false;
};
readonly 'style.borderBottomRightRadius': {
readonly type: "number";
readonly default: 0;
readonly min: 0;
readonly step: 1;
readonly description: "Bottom right radius";
readonly hiddenFromList: false;
};
readonly 'style.borderBottomLeftRadius': {
readonly type: "number";
readonly default: 0;
readonly min: 0;
readonly step: 1;
readonly description: "Bottom left radius";
readonly hiddenFromList: false;
};
readonly 'style.backgroundColor': {
readonly type: "color";
readonly default: "transparent";
readonly description: "Color";
};
readonly premountFor: {
readonly type: "number";
readonly default: 0;
readonly description: "Premount For";
readonly min: 0;
readonly step: 1;
readonly hiddenFromList: false;
readonly keyframable: false;
};
readonly postmountFor: {
readonly type: "number";
readonly default: 0;
readonly min: 0;
readonly step: 1;
readonly hiddenFromList: true;
readonly keyframable: false;
};
readonly cropLeft: {
readonly type: "number";
readonly default: 0;
readonly description: "Crop left";
readonly min: 0;
readonly max: 1;
readonly step: 0.01;
readonly hiddenFromList: false;
readonly keyframable: true;
};
readonly cropRight: {
readonly type: "number";
readonly default: 0;
readonly description: "Crop right";
readonly min: 0;
readonly max: 1;
readonly step: 0.01;
readonly hiddenFromList: false;
readonly keyframable: true;
};
readonly cropTop: {
readonly type: "number";
readonly default: 0;
readonly description: "Crop top";
readonly min: 0;
readonly max: 1;
readonly step: 0.01;
readonly hiddenFromList: false;
readonly keyframable: true;
};
readonly cropBottom: {
readonly type: "number";
readonly default: 0;
readonly description: "Crop bottom";
readonly min: 0;
readonly max: 1;
readonly step: 0.01;
readonly hiddenFromList: false;
readonly keyframable: true;
};
};
readonly none: {};
};
};
};
readonly SequenceWithoutSchema: import("react").ForwardRefExoticComponent<import("./Sequence.js").SequenceProps & import("react").RefAttributes<HTMLDivElement>>;
readonly sequenceStyleSchema: {
readonly 'style.transformOrigin': {
readonly type: "transform-origin";
readonly step: 1;
readonly default: "50% 50%";
readonly description: "Transform origin";
};
readonly 'style.translate': {
readonly type: "translate";
readonly step: 1;
readonly default: "0px 0px";
readonly description: "Offset";
};
readonly 'style.scale': {
readonly type: "scale";
readonly max: 100;
readonly step: 0.01;
readonly default: 1;
readonly description: "Scale";
readonly defaultKeyframeOutput: "perceptual-scale";
};
readonly 'style.rotate': {
readonly type: "rotation-css";
readonly step: 1;
readonly default: "0deg";
readonly description: "Rotation";
};
readonly 'style.opacity': {
readonly type: "number";
readonly min: 0;
readonly max: 1;
readonly step: 0.01;
readonly default: 1;
readonly description: "Opacity";
readonly hiddenFromList: false;
};
readonly 'style.borderWidth': {
readonly type: "number";
readonly default: undefined;
readonly min: 0;
readonly step: 1;
readonly description: "Border width";
readonly hiddenFromList: false;
};
readonly 'style.borderStyle': {
readonly type: "enum";
readonly default: "none";
readonly description: "Border style";
readonly variants: {
readonly none: {};
readonly hidden: {};
readonly solid: {};
readonly dashed: {};
readonly dotted: {};
readonly double: {};
readonly groove: {};
readonly ridge: {};
readonly inset: {};
readonly outset: {};
};
};
readonly 'style.borderColor': {
readonly type: "color";
readonly default: undefined;
readonly description: "Border color";
};
readonly 'style.borderRadius': {
readonly type: "number";
readonly default: 0;
readonly min: 0;
readonly step: 1;
readonly description: "Border radius";
readonly hiddenFromList: false;
readonly keyframable: true;
};
readonly 'style.borderTopLeftRadius': {
readonly type: "number";
readonly default: 0;
readonly min: 0;
readonly step: 1;
readonly description: "Top left radius";
readonly hiddenFromList: false;
};
readonly 'style.borderTopRightRadius': {
readonly type: "number";
readonly default: 0;
readonly min: 0;
readonly step: 1;
readonly description: "Top right radius";
readonly hiddenFromList: false;
};
readonly 'style.borderBottomRightRadius': {
readonly type: "number";
readonly default: 0;
readonly min: 0;
readonly step: 1;
readonly description: "Bottom right radius";
readonly hiddenFromList: false;
};
readonly 'style.borderBottomLeftRadius': {
readonly type: "number";
readonly default: 0;
readonly min: 0;
readonly step: 1;
readonly description: "Bottom left radius";
readonly hiddenFromList: false;
};
readonly 'style.backgroundColor': {
readonly type: "color";
readonly default: "transparent";
readonly description: "Color";
};
readonly premountFor: {
readonly type: "number";
readonly default: 0;
readonly description: "Premount For";
readonly min: 0;
readonly step: 1;
readonly hiddenFromList: false;
readonly keyframable: false;
};
readonly postmountFor: {
readonly type: "number";
readonly default: 0;
readonly min: 0;
readonly step: 1;
readonly hiddenFromList: true;
readonly keyframable: false;
};
readonly cropLeft: {
readonly type: "number";
readonly default: 0;
readonly description: "Crop left";
readonly min: 0;
readonly max: 1;
readonly step: 0.01;
readonly hiddenFromList: false;
readonly keyframable: true;
};
readonly cropRight: {
readonly type: "number";
readonly default: 0;
readonly description: "Crop right";
readonly min: 0;
readonly max: 1;
readonly step: 0.01;
readonly hiddenFromList: false;
readonly keyframable: true;
};
readonly cropTop: {
readonly type: "number";
readonly default: 0;
readonly description: "Crop top";
readonly min: 0;
readonly max: 1;
readonly step: 0.01;
readonly hiddenFromList: false;
readonly keyframable: true;
};
readonly cropBottom: {
readonly type: "number";
readonly default: 0;
readonly description: "Crop bottom";
readonly min: 0;
readonly max: 1;
readonly step: 0.01;
readonly hiddenFromList: false;
readonly keyframable: true;
};
};
readonly sequenceVisualStyleSchema: {
readonly 'style.transformOrigin': {
readonly type: "transform-origin";
readonly step: 1;
readonly default: "50% 50%";
readonly description: "Transform origin";
};
readonly 'style.translate': {
readonly type: "translate";
readonly step: 1;
readonly default: "0px 0px";
readonly description: "Offset";
};
readonly 'style.scale': {
readonly type: "scale";
readonly max: 100;
readonly step: 0.01;
readonly default: 1;
readonly description: "Scale";
readonly defaultKeyframeOutput: "perceptual-scale";
};
readonly 'style.rotate': {
readonly type: "rotation-css";
readonly step: 1;
readonly default: "0deg";
readonly description: "Rotation";
};
readonly 'style.opacity': {
readonly type: "number";
readonly min: 0;
readonly max: 1;
readonly step: 0.01;
readonly default: 1;
readonly description: "Opacity";
readonly hiddenFromList: false;
};
};
readonly sequencePremountSchema: {
readonly premountFor: {
readonly type: "number";
readonly default: 0;
readonly description: "Premount For";
readonly min: 0;
readonly step: 1;
readonly hiddenFromList: false;
readonly keyframable: false;
};
readonly postmountFor: {
readonly type: "number";
readonly default: 0;
readonly min: 0;
readonly step: 1;
readonly hiddenFromList: true;
readonly keyframable: false;
};
};
readonly sequenceCropSchema: {
readonly cropLeft: {
readonly type: "number";
readonly default: 0;
readonly description: "Crop left";
readonly min: 0;
readonly max: 1;
readonly step: 0.01;
readonly hiddenFromList: false;
readonly keyframable: true;
};
readonly cropRight: {
readonly type: "number";
readonly default: 0;
readonly description: "Crop right";
readonly min: 0;
readonly max: 1;
readonly step: 0.01;
readonly hiddenFromList: false;
readonly keyframable: true;
};
readonly cropTop: {
readonly type: "number";
readonly default: 0;
readonly description: "Crop top";
readonly min: 0;
readonly max: 1;
readonly step: 0.01;
readonly hiddenFromList: false;
readonly keyframable: true;
};
readonly cropBottom: {
readonly type: "number";
readonly default: 0;
readonly description: "Crop bottom";
readonly min: 0;
readonly max: 1;
readonly step: 0.01;
readonly hiddenFromList: false;
readonly keyframable: true;
};
};
readonly textSchema: {
readonly 'style.color': {
readonly type: "color";
readonly default: undefined;
readonly description: "Color";
};
readonly 'style.fontFamily': {
readonly type: "font-family";
readonly default: undefined;
readonly description: "Font family";
readonly keyframable: false;
};
readonly 'style.fontSize': {
readonly type: "number";
readonly default: undefined;
readonly min: 0;
readonly step: 1;
readonly description: "Font size";
readonly hiddenFromList: false;
};
readonly 'style.lineHeight': {
readonly type: "number";
readonly default: undefined;
readonly min: 0;
readonly step: 0.05;
readonly description: "Line height";
readonly hiddenFromList: false;
};
readonly 'style.fontWeight': {
readonly type: "font-weight";
readonly default: 400;
readonly description: "Font weight";
readonly keyframable: false;
};
readonly 'style.fontStyle': {
readonly type: "enum";
readonly default: "normal";
readonly description: "Font style";
readonly variants: {
readonly normal: {};
readonly italic: {};
readonly oblique: {};
};
};
readonly 'style.textAlign': {
readonly type: "enum";
readonly default: "left";
readonly description: "Text align";
readonly variants: {
readonly left: {};
readonly center: {};
readonly right: {};
readonly justify: {};
readonly start: {};
readonly end: {};
};
};
readonly 'style.letterSpacing': {
readonly type: "number";
readonly default: undefined;
readonly step: 0.1;
readonly description: "Letter spacing";
readonly hiddenFromList: false;
};
};
readonly transformSchema: {
readonly 'style.transformOrigin': {
readonly type: "transform-origin";
readonly step: 1;
readonly default: "50% 50%";
readonly description: "Transform origin";
};
readonly 'style.translate': {
readonly type: "translate";
readonly step: 1;
readonly default: "0px 0px";
readonly description: "Offset";
};
readonly 'style.scale': {
readonly type: "scale";
readonly max: 100;
readonly step: 0.01;
readonly default: 1;
readonly description: "Scale";
readonly defaultKeyframeOutput: "perceptual-scale";
};
readonly 'style.rotate': {
readonly type: "rotation-css";
readonly step: 1;
readonly default: "0deg";
readonly description: "Rotation";
};
readonly 'style.opacity': {
readonly type: "number";
readonly min: 0;
readonly max: 1;
readonly step: 0.01;
readonly default: 1;
readonly description: "Opacity";
readonly hiddenFromList: false;
};
};
readonly premountSchema: {
readonly premountFor: {
readonly type: "number";
readonly default: 0;
readonly description: "Premount For";
readonly min: 0;
readonly step: 1;
readonly hiddenFromList: false;
readonly keyframable: false;
};
readonly postmountFor: {
readonly type: "number";
readonly default: 0;
readonly min: 0;
readonly step: 1;
readonly hiddenFromList: true;
readonly keyframable: false;
};
};
readonly flattenActiveSchema: (schema: InteractivitySchema, resolve: import("./flatten-schema.js").ResolveValue) => InteractivitySchema;
readonly getFlatSchemaWithAllKeys: (schema: InteractivitySchema) => InteractivitySchema;
readonly RemotionRootContexts: import("react").FC<{
readonly children: import("react").ReactNode;
readonly numberOfAudioTags: number;
readonly logLevel: "error" | "info" | "trace" | "verbose" | "warn";
readonly audioLatencyHint: AudioContextLatencyCategory;
readonly previewSampleRate: number | null;
readonly videoEnabled: boolean;
readonly audioEnabled: boolean;
readonly frameState: Record<string, number> | null;
readonly _experimentalKeepAudioContextAlive: boolean;
}>;
readonly CompositionManagerProvider: ({ children, onlyRenderComposition, currentCompositionMetadata, initialCompositions, initialCanvasContent, }: {
readonly children: import("react").ReactNode;
readonly onlyRenderComposition: string | null;
readonly currentCompositionMetadata: import("./CompositionManagerContext.js").BaseMetadata | null;
readonly initialCompositions: import("./CompositionManager.js").AnyComposition[];
readonly initialCanvasContent: import("./CompositionManagerContext.js").CanvasContent | null;
}) => import("react/jsx-runtime").JSX.Element;
readonly useVideo: () => (import("./video-config.js").VideoConfig & {
component: import("react").LazyExoticComponent<import("react").ComponentType<Record<string, unknown>>> | import("react").ComponentType<Record<string, unknown>>;
}) | null;
readonly getRoot: () => import("react").FC<{}> | null;
readonly useMediaVolumeState: () => readonly [number, (u: number) => void];
readonly usePlayerMutedState: () => readonly [boolean, (u: import("react").SetStateAction<boolean>) => void];
readonly useMediaInTimeline: ({ volume, mediaVolume, src, mediaType, playbackRate, displayName, id, getStack, showInTimeline, premountDisplay, postmountDisplay, loopDisplay, documentationLink, refForOutline, muted, }: {
volume: import("./volume-prop.js").VolumeProp | undefined;
mediaVolume: number;
src: string | undefined;
mediaType: "audio" | "video";
playbackRate: number;
displayName: string | null;
id: string;
getStack: () => string | null;
showInTimeline: boolean;
premountDisplay: number | null;
postmountDisplay: number | null;
loopDisplay: import("./CompositionManager.js").LoopDisplay | undefined;
documentationLink: string | null;
refForOutline: import("react").RefObject<Element | null> | null;
muted: boolean;
}) => void;
readonly useLazyComponent: <Props>({ compProps, componentName, noSuspense, }: {
compProps: CompProps<Props>;
componentName: string;
noSuspense: boolean;
}) => import("react").ComponentType<Props> | (import("react").ExoticComponent<Props | (import("react").PropsWithoutRef<Props> & import("react").RefAttributes<import("react").Component<Props, any, any>>)> & {
readonly _result: import("react").ComponentType<Props>;
});
readonly truthy: typeof truthy;
readonly SequenceContext: import("react").Context<import("./SequenceContext.js").SequenceContextType | null>;
readonly PremountContext: import("react").Context<import("./PremountContext.js").PremountContextValue>;
readonly usePremounting: ({ from, durationInFrames, premountFor, postmountFor, style, styleWhilePremounted, styleWhilePostmounted, hideWhilePremounted, }: {
readonly from: number;
readonly durationInFrames: number;
readonly premountFor: number | null;
readonly postmountFor: number | null;
readonly style: import("react").CSSProperties | null;
readonly styleWhilePremounted: import("react").CSSProperties | null;
readonly styleWhilePostmounted: import("react").CSSProperties | null;
readonly hideWhilePremounted: "display-none" | "opacity";
}) => {
effectivePremountFor: number;
effectivePostmountFor: number;
premountingActive: boolean;
postmountingActive: boolean;
isPremountingOrPostmounting: boolean;
freezeFrame: number;
premountingStyle: import("react").CSSProperties | null;
};
readonly useRemotionContexts: typeof useRemotionContexts;
readonly RemotionContextProvider: (props: import("./wrap-remotion-context.js").RemotionContextProviderProps) => import("react/jsx-runtime").JSX.Element;
readonly CSSUtils: typeof CSSUtils;
readonly setupEnvVariables: () => void;
readonly MediaVolumeContext: import("react").Context<MediaVolumeContextValue>;
readonly SetMediaVolumeContext: import("react").Context<SetMediaVolumeContextValue>;
readonly getRemotionEnvironment: () => RemotionEnvironment;
readonly SharedAudioContext: import("react").Context<{
sampleRate: number;
audioContext: AudioContext | null;
getAudioContextState: () => RemotionAudioContextState | null;
gainNode: GainNode | null;
audioSyncAnchor: {
value: number;
};
audioSyncAnchorEmitter: import("./audio/shared-audio-tags.js").AudioSyncAnchorEmitter;
scheduleAudioNode: (options: ScheduleAudioNodeOptions) => ScheduleAudioNodeResult;
resume: () => Promise<void>;
resumeAsAutoPlay: () => Promise<void>;
suspend: () => Promise<void>;
getIsResumingAudioContext: () => Promise<import("./audio/wait-until-actually-resumed.js").AudioContextResumeResult> | null;
unscheduleAudioNode: (node: AudioBufferSourceNode) => void;
_experimentalKeepAudioContextAlive: boolean;
} | null>;
readonly SharedAudioContextProvider: import("react").FC<{
readonly children: import("react").ReactNode;
readonly audioLatencyHint: AudioContextLatencyCategory;
readonly audioEnabled: boolean;
readonly previewSampleRate: number | null;
readonly _experimentalKeepAudioContextAlive: boolean;
}>;
readonly SharedAudioTagsContext: import("react").Context<{
registerAudio: (options: {
aud: import("react").AudioHTMLAttributes<HTMLAudioElement>;
audioId: string;
premounting: boolean;
postmounting: boolean;
}) => {
id: number;
props: import("react").AudioHTMLAttributes<HTMLAudioElement>;
el: import("react").RefObject<HTMLAudioElement | null>;
audioId: string;
mediaElementSourceNode: {
setAudioContext: (newAudioContext: AudioContext | null) => void;
attemptToConnect: () => void;
get: () => MediaElementAudioSourceNode;
cleanup: () => void;
} | null;
premounting: boolean;
postmounting: boolean;
audioMounted: boolean;
cleanupOnMediaTagUnmount: () => void;
};
unregisterAudio: (id: number) => void;
updateAudio: (options: {
id: number;
aud: import("react").AudioHTMLAttributes<HTMLAudioElement>;
audioId: string;
premounting: boolean;
postmounting: boolean;
}) => void;
playAllAudios: () => void;
numberOfAudioTags: number;
} | null>;
readonly SharedAudioTagsContextProvider: import("react").FC<{
readonly numberOfAudioTags: number;
readonly children: import("react").ReactNode;
}>;
readonly invalidCompositionErrorMessage: string;
readonly invalidFolderNameErrorMessage: string;
readonly calculateMediaDuration: ({ trimAfter, mediaDurationInFrames, playbackRate, trimBefore, }: {
mediaDurationInFrames: number;
playbackRate: number;
trimBefore: number | undefined;
trimAfter: number | undefined;
}) => number;
readonly isCompositionIdValid: (id: string) => RegExpMatchArray | null;
readonly isFolderNameValid: (name: string) => RegExpMatchArray | null;
readonly getPreviewDomElement: () => HTMLElement | null;
readonly compositionsRef: import("react").RefObject<{
getCompositions: () => import("./CompositionManager.js").AnyComposition[];
} | null>;
readonly portalNode: () => HTMLElement;
readonly setPortalNodeCurrentScale: (scale: number) => void;
readonly waitForRoot: (fn: (comp: import("react").FC<{}>) => void) => () => void;
readonly SetTimelineContext: import("react").Context<SetTimelineContextValue>;
readonly CanUseRemotionHooksProvider: import("react").FC<{
readonly children: import("react").ReactNode;
}>;
readonly CanUseRemotionHooks: import("react").Context<boolean>;
readonly DisableInteractivityProvider: import("react").FC<{
readonly children: import("react").ReactNode;
}>;
readonly PrefetchProvider: import("react").FC<{
readonly children: import("react").ReactNode;
}>;
readonly DurationsContextProvider: import("react").FC<{
readonly children: import("react").ReactNode;
}>;
readonly IsPlayerContextProvider: import("react").FC<{
children?: import("react").ReactNode;
}>;
readonly useIsPlayer: () => boolean;
readonly EditorPropsProvider: import("react").FC<{
readonly children: import("react").ReactNode;
}>;
readonly EditorPropsContext: import("react").Context<import("./EditorProps.js").EditorPropsContextType>;
readonly usePreload: (src: string) => string;
readonly resolveVideoConfig: (params: {
compositionId: string;
compositionWidth: number | null;
compositionHeight: number | null;
compositionFps: number | null;
compositionDurationInFrames: number | null;
calculateMetadata: import("./Composition.js").CalculateMetadataFunction<Record<string, unknown>> | null;
signal: AbortSignal;
defaultProps: Record<string, unknown>;
inputProps: Record<string, unknown>;
}) => Promise<import("./video-config.js").VideoConfig> | import("./video-config.js").VideoConfig;
readonly resolveVideoConfigOrCatch: (params: {
compositionId: string;
compositionWidth: number | null;
compositionHeight: number | null;
compositionFps: number | null;
compositionDurationInFrames: number | null;
calculateMetadata: import("./Composition.js").CalculateMetadataFunction<Record<string, unknown>> | null;
signal: AbortSignal;
defaultProps: Record<string, unknown>;
inputProps: Record<string, unknown>;
}) => {
type: "success";
result: Promise<import("./video-config.js").VideoConfig> | import("./video-config.js").VideoConfig;
} | {
type: "error";
error: Error;
};
readonly resolveVideoConfigWithMetadataOrCatch: (params: {
compositionId: string;
compositionWidth: number | null;
compositionHeight: number | null;
compositionFps: number | null;
compositionDurationInFrames: number | null;
calculateMetadata: import("./Composition.js").CalculateMetadataFunction<Record<string, unknown>> | null;
signal: AbortSignal;
defaultProps: Record<string, unknown>;
inputProps: Record<string, unknown>;
}) => {
type: "success";
result: Promise<import("./resolve-video-config.js").VideoConfigWithMetadata> | import("./resolve-video-config.js").VideoConfigWithMetadata;
} | {
type: "error";
error: Error;
};
readonly ResolveCompositionContext: import("react").Context<{
[x: string]: ({
type: "loading";
} | {
type: "success";
result: import("./video-config.js").VideoConfig;
metadataSource: import("./resolve-video-config.js").VideoConfigMetadataSource | null;
} | {
type: "success-and-refreshing";
result: import("./video-config.js").VideoConfig;
metadataSource: import("./resolve-video-config.js").VideoConfigMetadataSource | null;
} | {
type: "error";
error: Error;
}) | undefined;
} | null>;
readonly useResolvedVideoConfig: (preferredCompositionId: string | null) => ({
type: "loading";
} | {
type: "success";
result: import("./video-config.js").VideoConfig;
metadataSource: import("./resolve-video-config.js").VideoConfigMetadataSource | null;
} | {
type: "success-and-refreshing";
result: import("./video-config.js").VideoConfig;
metadataSource: import("./resolve-video-config.js").VideoConfigMetadataSource | null;
} | {
type: "error";
error: Error;
}) | null;
readonly resolveCompositionsRef: import("react").RefObject<{
setCurrentRenderModalComposition: (compositionId: string | null) => void;
reloadCurrentlySelectedComposition: () => void;
resolveComposition: (compositionId: string) => Promise<import("./video-config.js").VideoConfig>;
} | null>;
readonly REMOTION_STUDIO_CONTAINER_ELEMENT: "__remotion-studio-container";
readonly RenderAssetManager: import("react").Context<import("./RenderAssetManager.js").RenderAssetManagerContext>;
readonly persistCurrentFrame: (time: {
[x: string]: number;
}) => void;
readonly usePlaybackRate: () => PlaybackRateContextValue;
readonly useTimelineContext: () => TimelineContextValue;
readonly useTimelineSetFrame: () => (u: import("react").SetStateAction<Record<string, number>>) => void;
readonly isIosSafari: () => boolean;
readonly WATCH_REMOTION_STATIC_FILES: "remotion_staticFilesChanged";
readonly addSequenceStackTraces: (component: unknown) => void;
readonly useMediaStartsAt: () => number;
readonly BufferingProvider: import("react").FC<{
readonly children: import("react").ReactNode;
}>;
readonly BufferingContextReact: import("react").Context<{
addBlock: () => {
unblock: () => void;
};
} | null>;
readonly getComponentsToAddStacksTo: () => unknown[];
readonly getSequenceComponent: () => unknown;
readonly getSingleChildComponent: (children: import("react").ReactNode) => unknown;
readonly getStackForControls: (controls: import("./CompositionManager.js").SequenceControls) => string | null;
readonly REMOTION_INTERNAL_STACK_PROP: "_remotionInternalStack";
readonly setComponentIdentityResolver: (resolver: ((component: unknown) => unknown) | null) => void;
readonly CurrentScaleContext: import("react").Context<({
type: "scale";
scale: number;
} | ({
type: "canvas-size";
canvasSize: {
width: number;
height: number;
left: number;
top: number;
windowSize: {
width: number;
height: number;
};
refresh: () => void;
};
} & {
canvasSizeForAuto: {
width: number;
height: number;
left: number;
top: number;
windowSize: {
width: number;
height: number;
};
refresh: () => void;
};
})) | null>;
readonly PixelDensityContext: import("react").Context<number | null>;
readonly PreviewSizeContext: import("react").Context<import("./use-current-scale.js").PreviewSizeCtx>;
readonly calculateScale: ({ canvasSize, compositionHeight, compositionWidth, previewSize, }: {
previewSize: number | "auto";
compositionWidth: number;
compositionHeight: number;
canvasSize: {
width: number;
height: number;
};
}) => number;
readonly validateRenderAsset: (artifact: TRenderAsset) => void;
readonly Log: {
trace: (options: {
logLevel: "error" | "info" | "trace" | "verbose" | "warn";
tag: string | null;
}, message?: any, ...optionalParams: any[]) => void;
verbose: (options: {
logLevel: "error" | "info" | "trace" | "verbose" | "warn";
tag: string | null;
}, message?: any, ...optionalParams: any[]) => void;
info: (options: {
logLevel: "error" | "info" | "trace" | "verbose" | "warn";
tag: string | null;
}, message?: any, ...optionalParams: any[]) => void;
warn: (options: {
logLevel: "error" | "info" | "trace" | "verbose" | "warn";
tag: string | null;
}, message?: any, ...optionalParams: any[]) => void;
error: (options: {
logLevel: "error" | "info" | "trace" | "verbose" | "warn";
tag: string | null;
}, message?: any, ...optionalParams: any[]) => void;
};
readonly LogLevelContext: import("react").Context<LoggingContextValue>;
readonly useLogLevel: () => "error" | "info" | "trace" | "verbose" | "warn";
readonly playbackLogging: ({ logLevel, tag, message, mountTime, }: {
logLevel: "error" | "info" | "trace" | "verbose" | "warn";
tag: string;
message: string;
mountTime: number | null;
}) => void;
readonly timeValueRef: import("react").RefObject<{
goToFrame: () => void;
seek: (newFrame: number) => void;
play: (e?: PointerEvent | import("react").SyntheticEvent<Element, Event> | undefined) => void;
pause: () => void;
toggle: (e?: PointerEvent | import("react").SyntheticEvent<Element, Event> | undefined) => void;
} | null>;
readonly compositionSelectorRef: import("react").RefObject<{
expandComposition: (compName: string) => void;
selectComposition: (compName: string) => void;
toggleFolder: (folderName: string, parentName: string | null) => void;
} | null>;
readonly RemotionEnvironmentContext: import("react").Context<RemotionEnvironment | null>;
readonly warnAboutTooHighVolume: (volume: number) => void;
readonly AudioForPreview: import("react").ForwardRefExoticComponent<Omit<import("./audio/props.js").NativeAudioProps & {
name?: string | undefined;
volume?: import("./volume-prop.js").VolumeProp | undefined;
playbackRate?: number | undefined;
preservePitch?: boolean | undefined;
acceptableTimeShiftInSeconds?: number | undefined;
allowAmplificationDuringRender?: boolean | undefined;
_remotionInternalNeedsDurationCalculation?: boolean | undefined;
_remotionInternalNativeLoopPassed?: boolean | undefined;
toneFrequency?: number | undefined;
useWebAudioApi?: boolean | undefined;
pauseWhenBuffering?: boolean | undefined;
showInTimeline?: boolean | undefined;
delayRenderTimeoutInMilliseconds?: number | undefined;
delayRenderRetries?: number | undefined;
loopVolumeCurveBehavior?: import("./index.js").LoopVolumeCurveBehavior | undefined;
onError?: ((err: Error) => void) | undefined;
audioStreamIndex?: number | undefined;
} & {
readonly shouldPreMountAudioTags: boolean;
readonly onDuration: (src: string, durationInSeconds: number) => void;
readonly pauseWhenBuffering: boolean;
readonly _remotionInternalNativeLoopPassed: boolean;
readonly _remotionInternalStack: string | null;
readonly showInTimeline: boolean;
readonly onNativeError: import("react").ReactEventHandler<HTMLAudioElement>;
}, "ref"> & import("react").RefAttributes<HTMLAudioElement>>;
readonly OBJECTFIT_CONTAIN_CLASS_NAME: "__remotion_objectfitcontain";
readonly InnerOffthreadVideo: import("react").FC<import("./video/props.js").AllOffthreadVideoProps>;
readonly useBasicMediaInTimeline: ({ volume, mediaVolume, mediaType, src, displayName, trimBefore, trimAfter, playbackRate, sequenceDurationInFrames, mediaStartsAt, loop, muted, }: {
volume: import("./volume-prop.js").VolumeProp | undefined;
mediaVolume: number;
mediaType: "audio" | "image" | "video";
src: string | undefined;
displayName: string | null;
trimBefore: number | undefined;
trimAfter: number | undefined;
playbackRate: number;
sequenceDurationInFrames: number;
mediaStartsAt: number;
loop: boolean;
muted: boolean;
}) => {
volumes: string | number;
duration: number;
doesVolumeChange: boolean;
finalDisplayName: string;
startMediaFrom: number;
src: string;
playbackRate: number;
muted: boolean;
};
readonly getInputPropsOverride: () => Record<string, unknown> | null;
readonly setInputPropsOverride: (override: Record<string, unknown> | null) => void;
readonly useVideoEnabled: () => boolean;
readonly useAudioEnabled: () => boolean;
readonly useBuffering: () => boolean;
readonly TimelinePosition: typeof TimelinePosition;
readonly DelayRenderContextType: import("react").Context<import("./delay-render.js").DelayRenderScope | null>;
readonly TimelineContext: import("react").Context<TimelineContextValue | null>;
readonly usePlaying: () => boolean;
readonly PlaybackRateContext: import("react").Context<PlaybackRateContextValue | null>;
readonly AbsoluteTimeContext: import("react").Context<TimelineContextValue | null>;
readonly RenderAssetManagerProvider: import("react").FC<{
children: import("react").ReactNode;
collectAssets: import("react").RefObject<import("./RenderAssetManager.js").CollectAssetsRef | null> | null;
}>;
readonly getEffectiveVisualModeValue: ({ propStatus, dragOverrideValue, defaultValue, frame, shouldResortToDefaultValueIfUndefined, }: {
propStatus: CanUpdateSequencePropStatusKeyframed | CanUpdateSequencePropStatusStatic;
dragOverrideValue: DragOverrideValue | undefined;
defaultValue: unknown;
frame?: number | null | undefined;
shouldResortToDefaultValueIfUndefined: boolean;
}) => unknown;
readonly CompositionRenderErrorContext: import("react").Context<import("./composition-render-error-context.js").CompositionRenderErrorContextType>;
readonly useEffectChainState: () => {
get: (width: number, height: number) => import("./internals.js").EffectChainState | null;
};
readonly createEffectChainState: (width: number, height: number) => import("./internals.js").EffectChainState;
readonly cleanupEffectChainState: (state: import("./internals.js").EffectChainState) => void;
readonly runEffectChain: ({ state, source, effects, output, width, height, }: import("./effects/run-effect-chain.js").RunEffectChainOptions) => Promise<boolean>;
readonly useMemoizedEffects: ({ effects, overrideId, }: {
effects: readonly import("./index.js").EffectDescriptor<unknown>[];
readonly overrideId: string | null;
}) => import("./index.js").EffectDefinitionAndStack<unknown>[];
readonly useMemoizedEffectDefinitions: (effects: readonly import("./index.js").EffectDescriptor<unknown>[]) => readonly import("./index.js").EffectDefinition<unknown>[] & {
readonly runtimeValues: readonly import("./runtime-value-store.js").RuntimeValueStore[];
};
readonly createEffect: <P, S>(definition: import("./index.js").EffectDefinition<P, S>) => import("./index.js").EffectFactory<P>;
readonly createWebGLContextError: (effectName: string) => Error;
readonly createWebGL2ContextError: (effectName: string) => Error;
readonly 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>;
};
readonly interpolateKeyframedStatus: ({ frame, forceSpringAllowTail, status, }: {
frame: number;
forceSpringAllowTail: boolean | null;
status: CanUpdateSequencePropStatusKeyframed;
}) => string | number | readonly number[] | null;
readonly makeStaticDragOverride: (value: unknown) => DragOverrideValue;
readonly makeKeyframedDragOverride: ({ status, frame, value, defaultEasing, }: {
status: CanUpdateSequencePropStatusKeyframed;
frame: number;
value: unknown;
defaultEasing?: CanUpdateSequencePropStatusEasing | undefined;
}) => DragOverrideValue;
readonly resolveDragOverrideValue: ({ dragOverrideValue, frame, }: {
dragOverrideValue: DragOverrideValue | undefined;
frame: number | null;
}) => import("./get-effective-visual-mode-value.js").ResolvedDragOverrideValue;
readonly getStaticDragOverrideValue: (dragOverrideValue: DragOverrideValue | undefined) => unknown;
readonly OverrideIdsToNodePathsGettersContext: import("react").Context<OverrideToNodePathGetters>;
readonly OverrideIdsToNodePathsSettersContext: import("react").Context<OverrideToNodeSetters>;
readonly findPropsToDelete: ({ schema, key, value, }: {
schema: InteractivitySchema;
key: string;
value: unknown;
}) => string[];
readonly makeSequencePropsSubscriptionKey: (key: SequencePropsSubscriptionKey) => string;
readonly getPropStatusesCtx: (propStatuses: PropStatuses, nodePath: SequencePropsSubscriptionKey) => Record<string, CanUpdateSequencePropStatus> | undefined;
readonly getEffectPropStatusesCtx: ({ propStatuses, nodePath, effectIndex, }: {
propStatuses: PropStatuses;
nodePath: SequencePropsSubscriptionKey;
effectIndex: number;
}) => {
type: "cannot-update-sequence";
reason: CannotUpdateSequenceReason;
} | {
type: "cannot-update-effect";
reason: import("./SequenceManager.js").CannotUpdateEffectReason;
} | {
type: "can-update-effect";
props: Record<string, CanUpdateSequencePropStatus>;
};
readonly hiddenField: InteractivitySchemaField;
readonly durationInFramesField: {
readonly type: "number";
readonly default: undefined;
readonly min: 1;
readonly step: 1;
readonly hiddenFromList: true;
};
readonly freezeField: {
readonly type: "number";
readonly default: null;
readonly step: 1;
readonly hiddenFromList: true;
};
readonly fromField: {
readonly type: "number";
readonly default: 0;
readonly step: 1;
readonly hiddenFromList: true;
};
readonly resolveSequenceCrop: ({ cropLeft, cropRight, cropTop, cropBottom, }: import("./sequence-crop.js").SequenceCropInput) => import("./sequence-crop.js").ResolvedSequenceCrop;
readonly useCropStyle: ({ cropLeft, cropRight, cropTop, cropBottom, style, componentName, }: import("./sequence-crop.js").SequenceCropInput & {
readonly style: import("react").CSSProperties | null;
readonly componentName: string;
}) => import("react").CSSProperties | null;
};
export type { ArrayFieldSchema, AssetFieldSchema, ArrayItemFieldSchema, CannotUpdateSequenceReason, CanUpdateEffectPropsResponse, CanUpdateEffectPropsResponseFalse, CanUpdateEffectPropsResponseTrue, CanUpdateSequencePropsResponse, CanUpdateSequencePropsResponseFalse, CanUpdateSequencePropsResponseTrue, CanUpdateSequencePropStatus, CanUpdateSequencePropStatusEasing, CanUpdateSequencePropStatusFalse, CanUpdateSequencePropStatusKeyframed, CanUpdateSequencePropStatusStatic, VideoConfigNumericExpression, CompositionManagerContext, CompProps, DragOverrides, DragOverrideValue, EffectDragOverrides, GetDragOverrides, GetEffectDragOverrides, GetEffectPropStatuses, GetPropStatuses, JsxComponentIdentity, LoggingContextValue, MediaVolumeContextValue, OverrideIdsToNodePathsGettersContext, OverrideIdsToNodePathsSettersContext, OverrideIdToNodePaths, OverrideToNodePathGetters, OverrideToNodeSetters, PlaybackRateContextValue, PropStatuses, RemotionAudioContextState, RemotionEnvironment, ResolvedStackLocation, ScheduleAudioNodeOptions, ScheduleAudioNodeResult, InteractivitySchemaField, SequenceNodePath, SequencePropsSubscriptionKey, SequencePropsStatusRemapping, VideoConfigValues, InteractivitySchema, SerializedJSONWithCustomFields, SetMediaVolumeContextValue, SetTimelineContextValue, TCompMetadata, TComposition, TimelineContextValue, TRenderAsset, TSequence, VisibleFieldSchema, WatchRemotionStaticFilesPayload, };