import { ScaleTime } from 'd3-scale'; import * as React from 'react'; import { DraggableData } from 'react-draggable'; import './LineChart.css'; import './ZoomTimeLine.css'; export interface Props { basisCurve?: boolean; endDate?: Date; height: number; leakPeriodDate?: Date; metricType: string; padding: number[]; series: T.Chart.Serie[]; showAreas?: boolean; showXTicks: boolean; startDate?: Date; updateZoom: (start?: Date, endDate?: Date) => void; width: number; } interface State { overlayLeftPos?: number; newZoomStart?: number; } declare type XScale = ScaleTime; export default class ZoomTimeLine extends React.PureComponent { static defaultProps: { padding: number[]; showXTicks: boolean; }; constructor(props: Props); getRatingScale: (availableHeight: number) => import("d3-scale").ScalePoint; getLevelScale: (availableHeight: number) => import("d3-scale").ScalePoint; getYScale: (availableHeight: number, flatData: T.Chart.Point[]) => any; getXScale: (availableWidth: number, flatData: T.Chart.Point[]) => XScale; getScales: () => { xScale: XScale; yScale: any; }; getEventMarker: (size: number) => string; handleDoubleClick: (xScale: XScale, xDim: number[]) => () => void; handleSelectionDrag: (xScale: XScale, width: number, xDim: number[], checkDelta?: boolean | undefined) => (_: MouseEvent, data: DraggableData) => void; handleSelectionHandleDrag: (xScale: XScale, fixedX: number, xDim: number[], handleDirection: string, checkDelta?: boolean | undefined) => (_: MouseEvent, data: DraggableData) => void; handleNewZoomDragStart: (xDim: number[]) => (_: MouseEvent, data: DraggableData) => void; handleNewZoomDrag: (xScale: XScale, xDim: number[]) => (_: MouseEvent, data: DraggableData) => void; handleNewZoomDragEnd: (xScale: XScale, xDim: number[]) => (_: MouseEvent, data: DraggableData) => void; handleZoomUpdate: (xScale: XScale, xArray: number[]) => void; renderBaseLine: (xScale: XScale, yScale: any) => JSX.Element; renderTicks: (xScale: XScale, yScale: any) => JSX.Element; renderLeak: (xScale: XScale, yScale: any) => JSX.Element | null; renderLines: (xScale: XScale, yScale: any) => JSX.Element; renderAreas: (xScale: XScale, yScale: any) => JSX.Element; renderZoomHandle: (options: { xScale: XScale; xPos: number; fixedPos: number; yDim: number[]; xDim: number[]; direction: string; }) => JSX.Element; renderZoom: (xScale: XScale, yScale: any) => JSX.Element; render(): JSX.Element; } export {};