import * as React from 'react';
export interface HandleProps {
    value: number;
    fillAfter?: boolean;
    fillBefore?: boolean;
    onChange?: (newValue: number) => void;
    onRelease?: (newValue: number) => void;
}
export interface InternalHandleProps extends HandleProps {
    disabled?: boolean;
    isCurrentLabelHovered?: boolean;
    label: string;
    ariaLabel?: string;
    max: number;
    min: number;
    stepSize: number;
    tickSize: number;
    tickSizeRatio: number;
    zIndex?: number;
}
export interface HandleState {
    isHandleMoving?: boolean;
    isHandleHovered?: boolean;
    isHandleFocused?: boolean;
}
export declare class Handle extends React.Component<InternalHandleProps, HandleState> {
    state: {
        isHandleMoving: boolean;
        isHandleHovered: boolean;
        isHandleFocused: boolean;
    };
    handleElement: HTMLElement | null;
    refHandlers: {
        handle: (el: HTMLDivElement) => HTMLDivElement;
    };
    componentWillUnmount(): void;
    componentDidUpdate(_prevProps: InternalHandleProps, prevState: HandleState): void;
    mouseEventClientOffset: (event: MouseEvent | React.MouseEvent<HTMLElement>) => number;
    clientToValue: (clientPixel: number) => number;
    changeValue: (newValue: number, callback?: ((newValue: number) => void) | undefined, isDirectionalUpdate?: boolean) => number;
    endHandleMovement: (event: MouseEvent) => void;
    continueHandleMovement: (event: MouseEvent) => void;
    beginHandleMovement: (event: MouseEvent | React.MouseEvent<HTMLElement>) => void;
    handleKeyDown: (event: React.KeyboardEvent<HTMLSpanElement>) => void;
    handleKeyUp: (event: React.KeyboardEvent<HTMLSpanElement>) => void;
    getHandleMidpointAndOffset: (handleElement: HTMLElement | null, useOppositeDimension?: boolean) => {
        handleMidpoint: number;
        handleOffset: number;
    };
    handleMouseOver: () => void;
    handleMouseLeave: () => void;
    handleFocus: () => void;
    handleBlur: () => void;
    render(): React.JSX.Element;
    removeDocumentEventListeners: () => void;
}
export default Handle;
