import React, { PureComponent, ReactText, ReactElement, TouchEvent, SVGProps } from 'react'; import { ScalePoint } from 'victory-vendor/d3-scale'; import { Padding, DataKey } from '../util/types'; type BrushTravellerType = ReactElement | ((props: any) => ReactElement); 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; ariaLabel?: 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; onDragEnd?: (newIndex: BrushStartEndIndex) => void; leaveTimeOut?: number; alwaysShowText?: boolean; } export type Props = Omit, 'onChange'> & BrushProps; type BrushTravellerId = 'startX' | 'endX'; interface State { isTravellerMoving?: boolean; isTravellerFocused?: boolean; isSlideMoving?: boolean; startX?: number; endX?: number; slideMoveStartX?: number; movingTravellerId?: BrushTravellerId; isTextActive?: boolean; brushMoveStartX?: number; scale?: ScalePoint; scaleValues?: number[]; prevData?: any[]; prevWidth?: number; prevX?: number; prevTravellerWidth?: number; prevUpdateId?: string | number; } export 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; travellerDragStartHandlers?: Record | TouchEvent) => void>; static renderDefaultTraveller(props: any): React.JSX.Element; static renderTraveller(option: BrushTravellerType, props: any): React.JSX.Element; static getDerivedStateFromProps(nextProps: Props, prevState: State): State; componentWillUnmount(): void; static getIndexInRange(valueRange: number[], x: number): number; getIndex({ startX, endX }: { startX: number; endX: number; }): { startIndex: number; endIndex: number; }; getTextOfTick(index: number): any; handleDrag: (e: React.Touch | React.MouseEvent | MouseEvent) => void; handleTouchMove: (e: TouchEvent) => void; attachDragEndListener(): void; detachDragEndListener(): void; handleDragEnd: () => void; handleLeaveWrapper: () => void; handleEnterSlideOrTraveller: () => void; handleLeaveSlideOrTraveller: () => void; handleSlideDragStart: (e: TouchEvent | React.MouseEvent) => void; handleSlideDrag(e: React.Touch | React.MouseEvent | MouseEvent): void; handleTravellerDragStart(id: BrushTravellerId, e: React.MouseEvent | TouchEvent): void; handleTravellerMove(e: React.Touch | React.MouseEvent | MouseEvent): void; handleTravellerMoveKeyboard(direction: 1 | -1, id: BrushTravellerId): void; renderBackground(): React.JSX.Element; renderPanorama(): React.ReactElement>; renderTravellerLayer(travellerX: number, id: BrushTravellerId): React.JSX.Element; renderSlide(startX: number, endX: number): React.JSX.Element; renderText(): React.JSX.Element; render(): React.JSX.Element; } export {};