import { Dimensions } from '@vertexvis/geometry'; import { Timing, TimingMeter } from '../meters'; import { StencilBufferManager, Viewport } from '../types'; import { Frame } from '../types/frame'; import { FrameRenderer } from './renderer'; export interface DrawFrame { canvas: CanvasRenderingContext2D; canvasDimensions: Dimensions.Dimensions; frame: Frame; viewport: Viewport; predicate?: () => boolean; beforeDraw?: VoidFunction; } export type CanvasRenderer = FrameRenderer; export type ReportTimingsCallback = (timing: Timing[]) => void; export declare function measureCanvasRenderer(meter: TimingMeter, renderer: CanvasRenderer, logFrameRate: boolean, callback: ReportTimingsCallback, intervalMs?: number): CanvasRenderer; export declare function createCanvasRenderer(): CanvasRenderer; export declare function debugStencilBuffer(stencilManager: StencilBufferManager, drawStencil: () => boolean, renderer: CanvasRenderer): CanvasRenderer;