import { FlameChartNodes, HitRegion, Mouse, Timeseries, Waterfall } from '../types'; import { OffscreenRenderEngine } from '../engines/offscreen-render-engine'; import { SeparatedInteractionsEngine } from '../engines/separated-interactions-engine'; import UIPlugin from './ui-plugin'; import { ChartLineType, ChartPoints } from './utils/chart-render'; type Dot = { time: number; type: 'start' | 'end'; }; export type TimeframeSelectorPluginStyles = { font: string; fontColor: string; overlayColor: string; graphStrokeColor: string; graphFillColor: string; flameChartGraphType: ChartLineType; waterfallStrokeOpacity: number; waterfallFillOpacity: number; waterfallGraphType: ChartLineType; bottomLineColor: string; knobColor: string; knobStrokeColor: string; knobSize: number; height: number; backgroundColor: string; }; export type TimeframeSelectorPluginSettings = { styles?: Partial; }; export declare const defaultTimeframeSelectorPluginStyles: TimeframeSelectorPluginStyles; export declare class TimeframeSelectorPlugin extends UIPlugin { styles: TimeframeSelectorPluginStyles; height: number; private flameChartNodes?; private waterfall?; private timeseries?; private preparedTimeseries?; private shouldRender; private leftKnobMoving; private rightKnobMoving; private selectingActive; private startSelectingPosition; private timeout; private offscreenRenderEngine; private timeGrid; private actualClusters; private clusters; private flameChartMaxLevel; private flameChartDots; private waterfallDots; private waterfallMaxLevel; private actualClusterizedFlatTree; private hoveredRegion; constructor({ waterfall, flameChartNodes, timeseries, settings, name, }: { flameChartNodes?: FlameChartNodes; waterfall?: Waterfall; timeseries?: Timeseries; settings: TimeframeSelectorPluginSettings; name?: string; }); init(renderEngine: OffscreenRenderEngine, interactionsEngine: SeparatedInteractionsEngine): void; handleHover(region: HitRegion | null): void; handleMouseDown(region: HitRegion<'right' | 'left'>, mouse: Mouse): void; handleMouseUp(_: HitRegion, mouse: Mouse, isClick: boolean): void; handleMouseMove(_: HitRegion, mouse: Mouse): void; postInit(): void; setLeftKnobPosition(mouseX: number): void; setRightKnobPosition(mouseX: number): void; getLeftKnobPosition(): number; getRightKnobPosition(): number; applyChanges(): void; setSettings({ styles }?: TimeframeSelectorPluginSettings): void; makeFlameChartDots(): void; makeRenderDots(dots: Dot[]): { dots: ChartPoints; maxLevel: number; }; makeWaterfallDots(): void; prepareTimeseries(): void; setData({ flameChartNodes, waterfall, timeseries, }: { flameChartNodes?: FlameChartNodes; waterfall?: Waterfall; timeseries?: Timeseries; }): void; setTimeseries(timeseries: Timeseries): void; setFlameChartNodes(flameChartNodes: FlameChartNodes): void; setWaterfall(waterfall: Waterfall): void; offscreenRender(): void; renderTimeframe(): void; renderTooltip(): boolean; render(): boolean; } export {};