/// import { EventEmitter } from 'events'; import { Dot, Mouse, RectRenderQueue, Stroke, Text, TooltipField, TriangleDirections } from '../types'; import { OffscreenRenderEngine } from './offscreen-render-engine'; import { RenderEngine } from './render-engine'; import { DefaultPatterns, Pattern, PatternCreator } from '../patterns'; export type RenderOptions = { tooltip?: ((data: any, renderEngine: RenderEngine | OffscreenRenderEngine, mouse: Mouse | null) => boolean | void) | boolean; timeUnits: string; }; export type RenderStyles = { blockHeight: number; blockPaddingLeftRight: number; backgroundColor: string; font: string; fontColor: string; badgeSize: number; tooltipHeaderFontColor: string; tooltipBodyFontColor: string; tooltipBackgroundColor: string; tooltipShadowColor: string; tooltipShadowBlur: number; tooltipShadowOffsetX: number; tooltipShadowOffsetY: number; headerHeight: number; headerColor: string; headerStrokeColor: string; headerTitleLeftPadding: number; }; export type CustomPattern = { name: string; creator: PatternCreator; }; export type RenderPatterns = Array; export type RenderSettings = { options?: Partial; styles?: Partial; patterns?: RenderPatterns; }; export declare const defaultRenderSettings: RenderOptions; export declare const defaultRenderStyles: RenderStyles; export type Shadow = { color: string; blur: number; offsetX?: number; offsetY?: number; }; export declare class BasicRenderEngine extends EventEmitter { width: number; height: number; isSafari: boolean; canvas: HTMLCanvasElement; ctx: CanvasRenderingContext2D; pixelRatio: number; options: RenderOptions; timeUnits: string; styles: RenderStyles; blockPaddingLeftRight: number; blockHeight: number; blockPaddingTopBottom: number; charHeight: number; placeholderWidth: number; avgCharWidth: number; minTextWidth: number; queue: Record; zoom: number; positionX: number; min: number; max: number; patterns: Record; ctxCachedSettings: {}; ctxCachedCalls: {}; constructor(canvas: HTMLCanvasElement, settings: RenderSettings); setSettings({ options, styles, patterns }: RenderSettings): void; reset(): void; setCtxValue: (field: string, value: number | string) => void; callCtx: (fn: any, value: any) => void; setCtxShadow(shadow: Shadow): void; setCtxFont(font: string): void; fillRect(x: number, y: number, w: number, h: number): void; fillText(text: string, x: number, y: number): void; renderBlock(x: number, y: number, w: number, h?: number): void; renderStroke(color: string, x: number, y: number, w: number, h: number): void; clear(w?: number, h?: number, x?: number, y?: number): void; timeToPosition(time: number): number; pixelToTime(width: number): number; setZoom(zoom: number): void; setPositionX(x: number): number; getQueue(priority?: number): { text: Text[]; stroke: Stroke[]; rect: RectRenderQueue; }; addRect(rect: { color: string; pattern?: string; x: number; y: number; w: number; h?: number; }, priority?: number): void; addText({ text, x, y, w }: { text: string; x: number; y: number; w: number; }, priority?: number): void; addStroke(stroke: { color: string; x: number; y: number; w: number; h: number; }, priority?: number): void; resolveQueue(): void; renderRects(rects: RectRenderQueue): void; renderTexts(texts: Text[]): void; renderStrokes(strokes: Stroke[]): void; setMinMax(min: number, max: number): void; getTimeUnits(): string; tryToChangePosition(positionDelta: number): void; getInitialZoom(): number; getRealView(): number; resetView(): void; resize(width?: number, height?: number): boolean; applyCanvasSize(): void; copy(engine: OffscreenRenderEngine): void; createDefaultPattern({ name, type, config }: DefaultPatterns): void; createCachedDefaultPattern(pattern: DefaultPatterns): void; createBlockPattern({ name, creator }: { name: string; creator: PatternCreator; }): void; renderTooltipFromData(fields: TooltipField[], mouse: Mouse): void; renderShape(color: string, dots: Dot[], posX: number, posY: number): void; renderTriangle({ color, x, y, width, height, direction, }: { color: string; x: number; y: number; width: number; height: number; direction: TriangleDirections; }): void; renderCircle(color: string, x: number, y: number, radius: number): void; }