/// <reference types="lodash" />
import * as React from 'react';
import PropTypes from 'prop-types';
export declare type FixedType = boolean | 'left' | 'right';
export interface Client {
    clientX?: number;
    clientY?: number;
    preventDefault?: Function;
}
export interface ColumnResizeHandlerProps {
    height?: number;
    defaultColumnWidth?: number;
    columnLeft?: number;
    columnFixed?: FixedType;
    className?: string;
    classPrefix?: string;
    minWidth?: number;
    style?: React.CSSProperties;
    onColumnResizeStart?: (client: Client) => void;
    onColumnResizeEnd?: (columnWidth?: number, cursorDelta?: number) => void;
    onColumnResizeMove?: (columnWidth?: number, columnLeft?: number, columnFixed?: FixedType) => void;
    onMouseEnterHandler?: (left: number) => void;
    onMouseLeaveHandler?: () => void;
}
declare class ColumnResizeHandler extends React.Component<ColumnResizeHandlerProps> {
    static get contextType(): React.Context<import("./TableContext").Props>;
    static propTypes: {
        height: PropTypes.Requireable<number>;
        defaultColumnWidth: PropTypes.Requireable<number>;
        columnLeft: PropTypes.Requireable<number>;
        columnFixed: PropTypes.Requireable<string | boolean>;
        className: PropTypes.Requireable<string>;
        classPrefix: PropTypes.Requireable<string>;
        minWidth: PropTypes.Requireable<number>;
        style: PropTypes.Requireable<object>;
        onColumnResizeStart: PropTypes.Requireable<(...args: any[]) => any>;
        onColumnResizeEnd: PropTypes.Requireable<(...args: any[]) => any>;
        onColumnResizeMove: PropTypes.Requireable<(...args: any[]) => any>;
        onMouseEnterHandler: PropTypes.Requireable<(...args: any[]) => any>;
        onMouseLeaveHandler: PropTypes.Requireable<(...args: any[]) => any>;
    };
    static defaultProps: {
        classPrefix: string;
    };
    columnWidth: number;
    cursorDelta: number;
    mouseMoveTracker: any;
    isKeyDown: boolean;
    handleRef: React.RefObject<any>;
    mounted: boolean;
    dragging: boolean;
    deltaX: any;
    touchX: any;
    constructor(props: any);
    componentDidMount(): void;
    componentWillUnmount(): void;
    findDOMNode(): HTMLElement;
    handleDragStart: (e: any) => void;
    handleDrag: (event: any) => void;
    handleDragStop: () => void;
    onMove: (deltaX: number) => void;
    onColumnResizeEnd: () => void;
    onColumnResizeMouseDown: (event: React.MouseEvent<Element, MouseEvent>) => void;
    showMouseArea: (e: any) => void;
    delayShowMouseArea: ((e: any) => void) & import("lodash").Cancelable;
    handleShowMouseArea: (e: any) => void;
    handleHideMouseArea: () => void;
    getMouseMoveTracker(): any;
    render(): JSX.Element | null;
}
export default ColumnResizeHandler;
