import React, { PureComponent, ReactText, MouseEvent, ReactElement, TouchEvent } from 'react'; import { ScalePoint } from 'd3-scale'; import { Padding, PresentationAttributes, DataKey } from '../util/types'; declare type BrushTravellerType = ReactElement | ((props: any) => SVGElement); interface BrushStartEndIndex { startIndex?: number; endIndex?: number; } interface InternalBrushProps { x?: number; y?: number; width?: number; data?: any[]; updateId?: string | number; } interface BrushProps extends InternalBrushProps { className?: string; height: number; travellerWidth?: number; traveller?: BrushTravellerType; gap?: number; padding?: Padding; dataKey?: DataKey; startIndex?: number; endIndex?: number; tickFormatter?: (value: any, index: number) => ReactText; children?: ReactElement; onChange?: (newIndex: BrushStartEndIndex) => void; leaveTimeOut?: number; alwaysShowText?: boolean; } declare type Props = PresentationAttributes & BrushProps; declare type BrushTravellerId = 'startX' | 'endX'; interface State { isTravellerMoving?: boolean; isSlideMoving?: boolean; startX?: number; endX?: number; slideMoveStartX?: number; movingTravellerId?: BrushTravellerId; isTextActive?: boolean; brushMoveStartX?: number; } declare class Brush extends PureComponent { static displayName: string; static defaultProps: { height: number; travellerWidth: number; gap: number; fill: string; stroke: string; padding: { top: number; right: number; bottom: number; left: number; }; leaveTimeOut: number; alwaysShowText: boolean; }; constructor(props: Props); leaveTimer?: number; scale?: ScalePoint; scaleValues?: number[]; travellerDragStartHandlers?: Record | TouchEvent) => void>; static renderDefaultTraveller(props: any): JSX.Element; static renderTraveller(option: BrushTravellerType, props: any): SVGElement | JSX.Element; UNSAFE_componentWillReceiveProps(nextProps: Props): void; componentWillUnmount(): void; static getIndexInRange(range: number[], x: number): number; getIndex({ startX, endX }: { startX: number; endX: number; }): { startIndex: number; endIndex: number; }; getTextOfTick(index: number): any; handleDrag: (e: React.MouseEvent | React.Touch) => void; handleTouchMove: (e: React.TouchEvent) => void; attachDragEndListener(): void; detachDragEndListener(): void; handleDragEnd: () => void; handleLeaveWrapper: () => void; handleEnterSlideOrTraveller: () => void; handleLeaveSlideOrTraveller: () => void; handleSlideDragStart: (e: React.TouchEvent | React.MouseEvent) => void; handleSlideDrag(e: React.Touch | MouseEvent): void; handleTravellerDragStart(id: BrushTravellerId, e: MouseEvent | TouchEvent): void; handleTravellerMove(e: React.Touch | MouseEvent): void; createScale(props: Props): { isTextActive: boolean; isSlideMoving: boolean; isTravellerMoving: boolean; startX: number; endX: number; }; removeScale(): void; renderBackground(): JSX.Element; renderPanorama(): React.ReactElement React.ReactElement React.Component)>) | (new (props: any) => React.Component)>; renderTravellerLayer(travellerX: number, id: BrushTravellerId): JSX.Element; renderSlide(startX: number, endX: number): JSX.Element; renderText(): JSX.Element; render(): JSX.Element; } export default Brush;