/// <reference types="lodash" />
import * as React from 'react';
import TableContext from './TableContext';
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?: () => void;
    onMouseLeaveHandler?: () => void;
}
declare class ColumnResizeHandler extends React.Component<ColumnResizeHandlerProps> {
    static get contextType(): typeof TableContext;
    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;
    handleShowMouseArea: (() => void) & import("lodash").Cancelable;
    handleHideMouseArea: () => void;
    getMouseMoveTracker(): any;
    render(): JSX.Element | null;
}
export default ColumnResizeHandler;
