Files
Recordly/tests/ui/exportRendererProbe.ts
webadderall 08f72ef6aa Recordly 2.0 local review stack 5/6
Dependency-ordered review preparation. Not pushed or remotely reviewed.
2026-11-06 05:24:22 +11:00

36 lines
1.2 KiB
TypeScript

// Test-only views of the private resources exercised by the pixel-level fixtures.
// Each case uses the corresponding implementation's view; production APIs stay unchanged.
export interface ExportRendererProbe {
config: { zoomMotionBlur: number };
getCanvas(): HTMLCanvasElement;
destroy(): void;
}
interface MotionProbe {
animationState: { appliedScale: number };
}
interface MediaProbe {
webcamDecodedFrame: VideoFrame | null;
lastSyncedWebcamTime: number;
}
interface FrameCacheProbe {
webcamFrameCacheCanvas: HTMLCanvasElement | null;
webcamFrameCacheCtx: CanvasRenderingContext2D | null;
}
export interface LegacyRendererProbe
extends ExportRendererProbe,
MotionProbe,
MediaProbe,
FrameCacheProbe {
webcamVideoElement: Pick<HTMLVideoElement, "readyState"> | null;
webcamMotionTimeMs: number;
drawWebcamOverlay(context: CanvasRenderingContext2D, width: number, height: number): void;
}
export interface ModernRendererProbe extends ExportRendererProbe {
initialize(): Promise<void>;
motion: MotionProbe;
webcamMedia: MediaProbe;
webcamFrames: FrameCacheProbe;
webcam: { updateWebcamOverlay(sourceTime: number, outputTime: number): void };
scene: { app: { render(): void } };
}