/** * Copyright 2017-present Palantir Technologies * @license MIT */ import { ITransformableScale } from "../scales"; /** * Manages deferred rendering callbacks. * * Call `setDomains` when deferred rendering is initially enabled to fix the * current domain values. * * Call `updateDomains` when scale domains change, which uses the domain to * compute CSS-tyle transform parameters passed to `applyTransformCallback`, * mimicking the result of a full re-render. After a deferred timeout, invoke * `applyTransformCallback` again with an identity transform and finally invoke * `renderCallback`, which should actually redraw the plot. * * Call `resetTransforms` just prior to re-rendering into the canvas. This * ensures that the canvas is at 1:1 scaling. */ export declare class DeferredRenderer { private renderCallback; private applyTransformCallback; static DEFERRED_RENDERING_DELAY: number; private domainTransformX; private domainTransformY; private timeoutToken; constructor(renderCallback: () => void, applyTransformCallback: (tx: number, ty: number, sx: number, sy: number) => void); setDomains(scaleX?: ITransformableScale, scaleY?: ITransformableScale): void; updateDomains(scaleX?: ITransformableScale, scaleY?: ITransformableScale): void; resetTransforms(): void; private renderDeferred; private applyTransform(); }