import { type CompiledVisualArtifact, type CompileVisualArtifactOptions, type DynamicSubjectProvider } from "./artifact-compiler.ts"; import { type RationalTime, type RationalTimeInput } from "./time.ts"; import type { ResolveAuthorImport } from "./integration-types.ts"; import { type FastCaptureRequest, type FastCaptureResult } from "./fast-render.ts"; export interface TimelineSampleRequest { time: RationalTimeInput; signal?: AbortSignal; } export interface TimelineSampleResult { readonly png: Uint8Array; readonly width: number; readonly height: number; readonly time: RationalTime; readonly snapshotId: string; readonly sha256: string; readonly videoSurfaces: readonly TimelineVideoSurface[]; } export interface TimelineVideoSurface { readonly videoId: string; readonly corners: readonly [ Readonly<{ x: number; y: number; }>, Readonly<{ x: number; y: number; }>, Readonly<{ x: number; y: number; }>, Readonly<{ x: number; y: number; }> ]; readonly cornerRadiusRatio: number; } export interface TimelineInstance { readonly snapshotId: string; /** True when every sample time produces the same pixels for this instance. */ readonly isStatic: boolean; sample(request: TimelineSampleRequest): Promise; /** Available for FAST_RENDER artifacts without external frame subjects or video projections. */ captureFrames?: (request: FastCaptureRequest) => Promise; close(): Promise; } interface TimelineAdapter { open(artifact: CompiledVisualArtifact, options?: TimelineOpenOptions): Promise; close(): Promise; } export declare function defaultDomPageCount(platform?: NodeJS.Platform, parallelism?: number): number; export declare function effectiveDomPageCount(requested?: number, platform?: NodeJS.Platform, parallelRender?: boolean): number; export declare class DomTimelineAdapter implements TimelineAdapter { #private; readonly fastRender: boolean; readonly fastRenderSpeed: number; constructor(maximumPages?: number, fastRender?: boolean, fastRenderSpeed?: number, parallelRender?: boolean); open(artifact: CompiledVisualArtifact, options?: TimelineOpenOptions): Promise; close(): Promise; } export declare class VisualTimelineRuntime { #private; readonly fastRender: boolean; readonly fastRenderSpeed: number; readonly fastRenderParallel: number; readonly maximumDomPages: number; constructor(options: VisualTimelineRuntimeOptions); open(input: CompiledVisualArtifact | CompileVisualArtifactOptions, options?: TimelineOpenOptions): Promise; /** Export groups share one page budget; concurrent nodes cannot deadlock acquiring pages. */ openMany(artifact: CompiledVisualArtifact, maximumCount: number, options?: TimelineOpenOptions, signal?: AbortSignal): Promise; close(): Promise; } export interface VisualTimelineRuntimeOptions { readonly fastRender?: boolean; readonly fastRenderSpeed?: number; readonly fastRenderParallel?: number; readonly maximumDomPages?: number; readonly resolveAuthorImport: ResolveAuthorImport; } export interface TimelineOpenOptions { readonly dynamicSubjectProvider?: DynamicSubjectProvider; } export {}; //# sourceMappingURL=visual-timeline-runtime.d.ts.map