import type { ComponentType, PropsWithChildren } from 'react'; import React from 'react'; import type { AnyZodObject } from 'zod'; import type { Codec } from './codec.js'; import type { InferProps, PropsIfHasProps } from './props-if-has-props.js'; type LooseComponentType = ComponentType | ((props: T) => React.ReactNode); export type CompProps = { lazyComponent: () => Promise<{ default: LooseComponentType; }>; } | { component: LooseComponentType; }; export type CalcMetadataReturnType> = { durationInFrames?: number; fps?: number; width?: number; height?: number; props?: T; defaultCodec?: Codec; }; export type CalculateMetadataFunction> = (options: { defaultProps: T; props: T; abortSignal: AbortSignal; compositionId: string; }) => Promise> | CalcMetadataReturnType; type OptionalDimensions> = { width?: number; height?: number; calculateMetadata: CalculateMetadataFunction>; }; type MandatoryDimensions> = { width: number; height: number; calculateMetadata?: CalculateMetadataFunction>; }; type StillCalculateMetadataOrExplicit> = OptionalDimensions | MandatoryDimensions; type CompositionCalculateMetadataOrExplicit> = (OptionalDimensions & { fps?: number; durationInFrames?: number; }) | (MandatoryDimensions & { fps: number; durationInFrames: number; }); export type StillProps> = { id: string; schema?: Schema; } & StillCalculateMetadataOrExplicit & CompProps & PropsIfHasProps; export declare const ClipComposition: React.FC; export type CompositionProps> = { readonly id: string; readonly schema?: Schema; } & CompositionCalculateMetadataOrExplicit & CompProps & PropsIfHasProps; /** * @description This component is used to register a video to make it renderable and make it show in the sidebar, in dev mode. * @see [Documentation](https://www.remotion.dev/docs/composition) */ export declare const Composition: >({ width, height, fps, durationInFrames, id, defaultProps, schema, ...compProps }: CompositionProps) => React.ReactPortal | null; export {};