import React, { MutableRefObject } from 'react';
export type PanelState = {
    top: number;
    left: number;
    width: number;
    height: number;
};
export type DraggableEvent = MouseEvent & {
    areaId: string;
};
export declare enum PANEL_STATE {
    FLOATING = "floating",
    COLLAPSED = "collapsed",
    DOCKED = "docked",
    TO_BE_DOCKED = "to-be-docked"
}
export type FloatingPanelContextType = {
    onDrag: (event: DraggableEvent) => void;
    onDragStart: (event: DraggableEvent) => void;
    onDragEnd: (event: DraggableEvent | string) => void;
    onMoveWithArrows: (event: React.KeyboardEvent) => void;
    isDocked: boolean;
    setIsDocked: (docked: boolean) => void;
    isCollapsed: boolean;
    setIsCollapsed: (docked: boolean) => void;
    isMoving: boolean;
    getPosition: () => PanelState;
};
export type ElementReference = HTMLElement | Element | MutableRefObject<HTMLElement> | (() => HTMLElement) | null;
