import * as React from 'react';
import type { ResizeHandleAxis, DefaultProps, Props, DragCallbackData } from './propTypes';
export default class Resizable extends React.Component<Props, {}> {
    static propTypes: {
        [key: string]: any;
    };
    static defaultProps: DefaultProps;
    handleRefs: {
        [key in ResizeHandleAxis]?: React.RefObject<HTMLElement>;
    };
    lastHandleRect: DOMRect | null;
    slack: [number, number] | null;
    lastSize: {
        width: number;
        height: number;
    } | null;
    componentWillUnmount(): void;
    resetData(): void;
    runConstraints(width: number, height: number): [number, number];
    /**
     * Wrapper around drag events to provide more useful data.
     *
     * @param  {String} handlerName Handler name to wrap.
     * @return {Function}           Handler function.
     */
    resizeHandler(handlerName: 'onResize' | 'onResizeStart' | 'onResizeStop', axis: ResizeHandleAxis): (e: React.SyntheticEvent, data: DragCallbackData) => void;
    renderResizeHandle(handleAxis: ResizeHandleAxis, ref: React.RefObject<HTMLElement>): React.ReactNode;
    render(): React.ReactNode;
}
