import { type LogLevel } from 'remotion'; import type { AnyZodObject, z } from 'zod'; import { type WebRendererOnArtifact } from './artifact'; import { type FrameRange } from './frame-range'; import type { InternalState } from './internal-state'; import type { WebRendererAudioCodec, WebRendererContainer, WebRendererQuality } from './mediabunny-mappings'; import { type WebRendererVideoCodec } from './mediabunny-mappings'; import type { WebRendererOutputTarget } from './output-target'; import type { CompositionCalculateMetadataOrExplicit } from './props-if-has-props'; import { type OnFrameCallback } from './validate-video-frame'; export type InputPropsIfHasProps = AnyZodObject extends Schema ? {} extends Props ? { inputProps?: z.input & Props; } : { inputProps: Props; } : {} extends Props ? { inputProps: z.input; } : { inputProps: z.input & Props; }; type MandatoryRenderMediaOnWebOptions> = { composition: CompositionCalculateMetadataOrExplicit; }; export type RenderMediaOnWebProgress = { renderedFrames: number; encodedFrames: number; }; export type RenderMediaOnWebResult = { getBlob: () => Promise; internalState: InternalState; }; export type RenderMediaOnWebProgressCallback = (progress: RenderMediaOnWebProgress) => void; export type WebRendererHardwareAcceleration = 'no-preference' | 'prefer-hardware' | 'prefer-software'; type OptionalRenderMediaOnWebOptions = { delayRenderTimeoutInMilliseconds: number; logLevel: LogLevel; schema: Schema | undefined; mediaCacheSizeInBytes: number | null; videoCodec: WebRendererVideoCodec; audioCodec: WebRendererAudioCodec | null; audioBitrate: number | WebRendererQuality; container: WebRendererContainer; signal: AbortSignal | null; onProgress: RenderMediaOnWebProgressCallback | null; hardwareAcceleration: WebRendererHardwareAcceleration; keyframeIntervalInSeconds: number; videoBitrate: number | WebRendererQuality; frameRange: FrameRange | null; transparent: boolean; onArtifact: WebRendererOnArtifact | null; onFrame: OnFrameCallback | null; outputTarget: WebRendererOutputTarget | null; licenseKey: string | null; isProduction: boolean; muted: boolean; scale: number; }; export type RenderMediaOnWebOptions> = MandatoryRenderMediaOnWebOptions & Partial> & InputPropsIfHasProps; export declare const renderMediaOnWeb: >(options: RenderMediaOnWebOptions) => Promise; export {};