import React, { Dispatch, SetStateAction } from 'react';
import { Modifier, Placement } from '@popperjs/core';
import { IconLookup } from '@fortawesome/fontawesome-svg-core';
import './floating-panel.less';
import type { ElementReference, PanelState } from './types';
export type FloatingPanelProps = {
    /**
     * Panel's content
     */
    children: React.ReactNode;
    /**
     * Pass custom header action buttons here
     */
    actions?: React.ReactNode;
    minHeight?: number;
    minWidth?: number;
    maxWidth?: number;
    maxHeight?: number;
    /**
     * Position panel relative to this element. Alternative use `initialState`
     */
    anchorEl?: ElementReference;
    /**
     * Dock element. It should be placed after id="full-screen-modal-root"
     */
    dockEl?: ElementReference;
    /**
     * Pass an element where the main page content is rendered, this will help calculate the header size
     */
    pageContentEl?: ElementReference;
    /**
     * Popper's placement, used for initial position if `initialState` is not defined
     */
    placement?: Placement;
    /**
     * Popper modifies which will override default set of modifiers
     */
    popperModifiers?: Partial<Modifier<any, any>>[];
    testId?: string;
    /**
     * Use this to set initial state. Update it in `onClose` handler to preserve last position.
     */
    initialState?: PanelState;
    /**
     * Use this to control docked state outside the component
     */
    isDocked?: boolean;
    /**
     * Use this to sync up the docked state with consumer when controlled outside
     */
    setIsDocked?: Dispatch<SetStateAction<boolean>>;
    /**
     * Use this to control collapsed state outside the component
     */
    isCollapsed?: boolean;
    /**
     * Use this to sync up the collapsed state with consumer when controlled outside
     */
    setIsCollapsed?: Dispatch<SetStateAction<boolean>>;
    /**
     * Use this in consumer to update `initialState` in order to preserve last position
     */
    onClose?: (State: PanelState) => void;
    /**
     * Aria label for the floating panel
     */
    ariaLabel?: string;
    /**
     * Font awesome component for the drag handle
     */
    dragIcon?: IconLookup;
};
/**
 * Floating panel
 * @midnight-gray-supported
 * @uxr-only-supported
 * @alpine-light-supported
 */
export declare function FloatingPanel({ children, minHeight, minWidth, maxWidth, maxHeight, anchorEl, dockEl, pageContentEl, initialState, testId, placement, popperModifiers, onClose, actions, dragIcon, ...props }: FloatingPanelProps): import("react/jsx-runtime").JSX.Element;
