//#region src/preview/renderTimegroupToCanvas.types.d.ts
/**
 * Type definitions for canvas rendering.
 * This file has ZERO imports and ZERO side effects - safe for SSR.
 */
type ContentReadyMode = "immediate" | "blocking";
interface CaptureOptions {
  timeMs: number;
  scale?: number;
  skipRestore?: boolean;
  contentReadyMode?: ContentReadyMode;
  blockingTimeoutMs?: number;
  canvasMode?: "native" | "foreignObject";
  skipClone?: boolean;
}
interface CaptureFromCloneOptions {
  scale?: number;
  contentReadyMode?: ContentReadyMode;
  blockingTimeoutMs?: number;
  originalTimegroup?: any;
  timeMs?: number;
  canvasMode?: "native" | "foreignObject";
}
interface GeneratedThumbnail {
  timeMs: number;
  canvas: CanvasImageSource;
}
interface GenerateThumbnailsOptions {
  scale?: number;
  contentReadyMode?: ContentReadyMode;
  blockingTimeoutMs?: number;
  signal?: AbortSignal;
}
interface ThumbnailQueue {
  shift(): number | undefined;
}
interface CanvasPreviewResult {
  container: HTMLCanvasElement;
  canvas: HTMLCanvasElement;
  refresh: () => Promise<void>;
  setResolutionScale: (scale: number) => void;
  getResolutionScale: () => number;
  dispose: () => void;
}
interface CanvasPreviewOptions {
  scale?: number;
  resolutionScale?: number;
}
//#endregion
export { CanvasPreviewOptions, CanvasPreviewResult, CaptureFromCloneOptions, CaptureOptions, ContentReadyMode, GenerateThumbnailsOptions, GeneratedThumbnail, ThumbnailQueue };
//# sourceMappingURL=renderTimegroupToCanvas.types.d.ts.map