UNPKG

remotion

Version:

Make videos programmatically

63 lines (62 loc) 2.9 kB
import type { ComponentType } from 'react'; import React from 'react'; import type { AnyZodObject } from './any-zod-type.js'; import type { Codec } from './codec.js'; import type { InferProps, PropsIfHasProps } from './props-if-has-props.js'; import type { ProResProfile } from './prores-profile.js'; import type { PixelFormat, VideoImageFormat } from './render-types.js'; type LooseComponentType<T> = ComponentType<T> | ((props: T) => React.ReactNode); export type CompProps<Props> = { lazyComponent: () => Promise<{ default: LooseComponentType<Props>; }>; } | { component: LooseComponentType<Props>; }; export type CalcMetadataReturnType<T extends Record<string, unknown>> = { durationInFrames?: number; fps?: number; width?: number; height?: number; props?: T; defaultCodec?: Codec; defaultOutName?: string; defaultVideoImageFormat?: VideoImageFormat; defaultPixelFormat?: PixelFormat; defaultProResProfile?: ProResProfile; }; export type CalculateMetadataFunction<T extends Record<string, unknown>> = (options: { defaultProps: T; props: T; abortSignal: AbortSignal; compositionId: string; isRendering: boolean; }) => Promise<CalcMetadataReturnType<T>> | CalcMetadataReturnType<T>; type OptionalDimensions<Schema extends AnyZodObject, Props extends Record<string, unknown>> = { width?: number; height?: number; calculateMetadata: CalculateMetadataFunction<InferProps<Schema, Props>>; }; type MandatoryDimensions<Schema extends AnyZodObject, Props extends Record<string, unknown>> = { width: number; height: number; calculateMetadata?: CalculateMetadataFunction<InferProps<Schema, Props>>; }; type StillCalculateMetadataOrExplicit<Schema extends AnyZodObject, Props extends Record<string, unknown>> = OptionalDimensions<Schema, Props> | MandatoryDimensions<Schema, Props>; export type CompositionCalculateMetadataOrExplicit<Schema extends AnyZodObject, Props extends Record<string, unknown>> = (OptionalDimensions<Schema, Props> & { fps?: number; durationInFrames?: number; }) | (MandatoryDimensions<Schema, Props> & { fps: number; durationInFrames: number; }); export type StillProps<Schema extends AnyZodObject, Props extends Record<string, unknown>> = { id: string; schema?: Schema; } & StillCalculateMetadataOrExplicit<Schema, Props> & CompProps<Props> & PropsIfHasProps<Schema, Props>; export type CompositionProps<Schema extends AnyZodObject, Props extends Record<string, unknown>> = { readonly id: string; readonly schema?: Schema; } & CompositionCalculateMetadataOrExplicit<Schema, Props> & CompProps<Props> & PropsIfHasProps<Schema, Props>; export declare const Composition: <Schema extends AnyZodObject, Props extends Record<string, unknown>>(props: CompositionProps<Schema, Props>) => import("react/jsx-runtime.js").JSX.Element | null; export {};