import * as React from 'react';
import { Component } from 'react';
import { FeaturesContext } from './features';
export interface State {
    value: [number, number];
    trackWidth: number;
    trackLeft: number;
    prevValue?: [number, number];
}
export interface DualThumbProps {
    value: [number, number];
    id: string;
    min: number;
    max: number;
    step: number;
    label: string;
    labelAction?: any;
    labelHidden?: boolean;
    output?: boolean;
    helpText?: React.ReactNode;
    error?: Error;
    disabled?: boolean;
    prefix?: React.ReactNode;
    suffix?: React.ReactNode;
    onChange(value: [number, number], id: string): void;
    onFocus?(): void;
    onBlur?(): void;
}
export declare class DualThumb extends Component<DualThumbProps, State> {
    static contextType: React.Context<import("./features").Features | undefined>;
    static getDerivedStateFromProps(props: DualThumbProps, state: State): {
        prevValue: [number, number];
        value: [number, number];
    } | null;
    context: React.ContextType<typeof FeaturesContext>;
    state: State;
    private track;
    private trackWrapper;
    private thumbLower;
    private thumbUpper;
    private setTrackPosition;
    componentDidMount(): void;
    componentWillUnmount(): void;
    render(): React.JSX.Element;
    private handleMouseDownThumbLower;
    private handleMouseMoveThumbLower;
    private handleTouchStartThumbLower;
    private handleTouchMoveThumbLower;
    private handleMouseDownThumbUpper;
    private handleMouseMoveThumbUpper;
    private handleTouchStartThumbUpper;
    private handleTouchMoveThumbUpper;
    private handleKeypressLower;
    private handleKeypressUpper;
    private incrementValueLower;
    private decrementValueLower;
    private incrementValueUpper;
    private decrementValueUpper;
    private dispatchValue;
    private setValue;
    private handleMouseDownTrack;
    private handleTouchStartTrack;
    private actualXPosition;
}
