import React, { CSSProperties, Dispatch, SetStateAction } from 'react';
import { DraggableEvent, FloatingPanelContextType, PanelState } from './types';
export type UseFloatingPanelHook = {
    style: CSSProperties;
    context: FloatingPanelContextType;
    panelRef: React.MutableRefObject<HTMLDivElement | null>;
    headerRef: React.MutableRefObject<HTMLHeadElement | null>;
    onResize: (event: DraggableEvent) => void;
    onMovementStart: (event: DraggableEvent) => void;
    onResizeEnd: (event: DraggableEvent | string) => void;
    setPosition: Dispatch<SetStateAction<PanelState>>;
    isDocked: boolean;
    setIsDocked: (docked: boolean) => void;
    isCollapsed: boolean;
    setIsCollapsed: (collapsed: boolean) => void;
    getPosition: () => PanelState;
};
export type UseFloatingPanelParams = {
    minHeight: number;
    minWidth: number;
    maxWidth: number;
    maxHeight: number;
    isDocked: boolean;
    setIsDocked: Dispatch<SetStateAction<boolean>>;
    isCollapsed: boolean;
    setIsCollapsed: Dispatch<SetStateAction<boolean>>;
    initialState?: PanelState;
    containerElement: HTMLElement;
    pageContentElement?: HTMLElement;
};
export declare function useFloatingPanelState({ minWidth, minHeight, maxWidth, maxHeight, isDocked: isDockedExternal, setIsDocked: setIsDockedExternal, isCollapsed: isCollapsedExternal, setIsCollapsed: setIsCollapsedExternal, initialState, containerElement, pageContentElement, }: UseFloatingPanelParams): UseFloatingPanelHook;
