import type { RefObject } from 'react';
import React from 'react';
import { Resizable } from 're-resizable';
import type { RichMediaLayout } from '@atlaskit/adf-schema';
import type { DispatchAnalyticsEvent } from '../../analytics';
import type { HandleStyles } from '../../resizer/types';
import type { EnabledHandles, Props as ResizableMediaSingleProps } from './types';
export interface ResizableNumberSize {
    width: number;
    height: number;
}
export type ResizerProps = Omit<ResizableMediaSingleProps, 'height' | 'width'> & {
    selected?: boolean;
    enable: EnabledHandles;
    calcNewSize: (newWidth: number, stop: boolean) => {
        layout: RichMediaLayout;
        width: number | null;
    };
    snapPoints: number[];
    scaleFactor?: number;
    highlights: (width: number, snapPoints: number[]) => number[] | string[];
    dispatchAnalyticsEvent?: DispatchAnalyticsEvent;
    nodeType?: 'media' | 'embed';
    innerPadding?: number;
    height?: number;
    width: number;
    ratio?: string;
    handleComponentFunc?: (side: string) => React.ReactElement<any> | undefined;
    handleStyles?: HandleStyles;
};
export type ResizerState = {
    isResizing: boolean;
};
export default class Resizer extends React.Component<ResizerProps, ResizerState> {
    resizable: RefObject<Resizable>;
    state: {
        isResizing: boolean;
    };
    private handleResizeStart;
    private handleResize;
    private handleResizeStop;
    render(): JSX.Element;
}
