import React from 'react';
import type { CSSProperties } from 'react';
import type { TooltipProps } from '@atlaskit/tooltip';
import type { EnabledHandles, HandleAlignmentMethod, HandleHighlight, HandlePositioning, HandleResize, HandleResizeStart, HandleSize, HandleStyles, ResizerAppearance, Snap } from './types';
export type ResizerProps = {
    appearance?: ResizerAppearance;
    /**
     * Access to the inner most element which wraps passed children
     */
    childrenDOMRef?: (ref: HTMLElement | null) => void;
    className?: string;
    enable: EnabledHandles;
    /**
     * The handleAlignmentMethod is used in determining the vertical positioning of the resizer handle in relation to its children.
     */
    handleAlignmentMethod?: HandleAlignmentMethod;
    /**
     * This can be used to override the css class name applied to the resize handle.
     */
    handleClassName?: string;
    /**
     * The handleHighlight is used to determine how the handle looks when the users mouse hovers over the handle element.
     */
    handleHighlight?: HandleHighlight;
    /**
     * The handlePositioning is used to determine the horizontal position of the resizer handle in relation to its children.
     */
    handlePositioning?: HandlePositioning;
    handleResize?: HandleResize;
    handleResizeStart: HandleResizeStart;
    handleResizeStop: HandleResize;
    /**
     * The handleSize is used to determine the width/height of the handle element.
     *
     * **To be deprecated** and replaced with 'clamped' by default
     */
    handleSize?: HandleSize;
    /**
     * This property is used to override the style of one or more resize handles. Only the axis you specify will have
     * its handle style overriden.
     */
    handleStyles?: HandleStyles;
    /**
     * The handle can display a tooltip when mouse hovers.
     */
    handleTooltipContent?: TooltipProps['content'];
    /**
     * This is used to override the style of resize handles wrapper.
     */
    handleWrapperStyle?: CSSProperties;
    height?: number | string;
    isHandleVisible?: boolean;
    /**
     * Children of the component, this is going to be display below the resizer
     * useful for displaying a label such as size or layout
     */
    labelComponent?: React.ReactNode;
    maxHeight?: number | string;
    maxWidth?: number | string;
    minHeight?: number | string;
    minWidth?: number | string;
    /**
     * control if extended resize zone is needed, by default we apply it to the resizer
     */
    needExtendedResizeZone?: boolean;
    resizeRatio?: number;
    snap?: Snap;
    snapGap?: number;
    /**
     * Additional styles to be applied to the resizer component
     */
    style?: CSSProperties;
    width?: number;
};
type forwardRefType = {
    getResizerThumbEl: () => HTMLButtonElement | null;
};
declare const _default_1: React.ForwardRefExoticComponent<ResizerProps & {
    children?: React.ReactNode | undefined;
} & React.RefAttributes<forwardRefType>>;
export default _default_1;
