import { MouseEvent, TouchEvent, PropsWithChildren } from 'react';
declare const HORIZONTAL = "x";
declare const VERTICAL = "y";
declare const LEFT = "left";
declare const RIGHT = "right";
declare const TOP = "top";
declare const BOTTOM = "bottom";
export type ResizerProps = {
    /**
     * Defines where the resize handle is positioned relative to the element to resize.
     *
     * Possible values are:
     *
     * - `Resizer.LEFT`,
     * - `Resizer.RIGHT`,
     * - `Resizer.TOP`,
     * - `Resizer.BOTTOM`
     * - `'left`',
     * - `'right`',
     * - `'top`',
     * - `'bottom'`
     */
    position?: typeof LEFT | typeof RIGHT | typeof TOP | typeof BOTTOM;
    /**
     * Defines on which axis to resize.
     *
     * Possible values are:
     *
     * - `Resizer.HORIZONTAL`
     * - `Resizer.VERTICAL`
     * - `'x'`
     * - `'y'`
     */
    direction?: typeof HORIZONTAL | typeof VERTICAL;
    /**
     * Callback when the resize starts, means when the handle is pressed. It returns the respective event.
     *
     * @param event
     * @returns
     */
    onResizeStart?: (event: MouseEvent | TouchEvent) => void;
    /**
     * Callback when the resize handle is moved. The function returns the distant between the last
     * position and the mouse movement. Means you can either subtract or add this diff to the elements
     * width you want to change.
     *
     * @param diff
     * @returns
     */
    onResize?: (diff: number) => void;
    /**
     * Callback when the resize ends, means when the handle is released. It returns the respective event.
     *
     * @param event
     * @returns
     */
    onResizeEnd?: (event: Event) => void;
    /**
     * Additional classes to be set on the wrapper element.
     */
    className?: string;
};
declare const Resizer: {
    (props: PropsWithChildren<ResizerProps>): import("react/jsx-runtime").JSX.Element;
    HORIZONTAL: "x";
    VERTICAL: "y";
    LEFT: "left";
    RIGHT: "right";
    TOP: "top";
    BOTTOM: "bottom";
};
export default Resizer;
