import { ReactNode } from 'react';
export interface ArchbaseFloatingPanelProps {
    /** ID único do painel */
    id?: string;
    /** Conteúdo do painel */
    children: ReactNode;
    /** Título do painel */
    title?: string;
    /** Ícone do título */
    icon?: ReactNode;
    /** Largura inicial */
    width?: number;
    /** Altura inicial */
    height?: number;
    /** Posição X inicial */
    initialX?: number;
    /** Posição Y inicial */
    initialY?: number;
    /** Se pode redimensionar */
    resizable?: boolean;
    /** Se pode minimizar */
    minimizable?: boolean;
    /** Se pode maximizar */
    maximizable?: boolean;
    /** Se pode fechar */
    closable?: boolean;
    /** Callback ao fechar */
    onClose?: () => void;
    /** Callback ao minimizar */
    onMinimize?: () => void;
    /** Callback ao maximizar */
    onMaximize?: () => void;
    /** Callback ao restaurar */
    onRestore?: () => void;
    /** Callback ao mover */
    onMove?: (x: number, y: number) => void;
    /** Callback ao redimensionar */
    onResize?: (width: number, height: number) => void;
    /** Cor do header */
    headerColor?: string;
    /** Se o painel está inicialmente visível */
    defaultVisible?: boolean;
    /** Z-index */
    zIndex?: number;
    /** Tamanho mínimo */
    minWidth?: number;
    minHeight?: number;
    /** Tamanho máximo */
    maxWidth?: number;
    maxHeight?: number;
}
export interface ArchbaseFloatingPanelState {
    x: number;
    y: number;
    width: number;
    height: number;
    minimized: boolean;
    maximized: boolean;
    visible: boolean;
    zIndex: number;
}
export declare function ArchbaseFloatingPanel({ id, children, title, icon, width: initialWidth, height: initialHeight, initialX, initialY, resizable, minimizable, maximizable, closable, onClose, onMinimize, onMaximize, onRestore, onMove, onResize, headerColor, defaultVisible, zIndex: initialZIndex, minWidth, minHeight, maxWidth, maxHeight, }: ArchbaseFloatingPanelProps): import("react/jsx-runtime").JSX.Element;
export interface UseArchbaseFloatingPanelOptions {
    /** ID do painel */
    id?: string;
    /** Título */
    title?: string;
    /** Largura inicial */
    width?: number;
    /** Altura inicial */
    height?: number;
    /** Posição inicial */
    initialPosition?: {
        x: number;
        y: number;
    };
}
export interface UseArchbaseFloatingPanelReturn {
    /** Se o painel está visível */
    isOpen: boolean;
    /** Abrir o painel */
    open: () => void;
    /** Fechar o painel */
    close: () => void;
    /** Toggle visibilidade */
    toggle: () => void;
    /** Props para o painel */
    panelProps: Partial<ArchbaseFloatingPanelProps>;
}
export declare function useArchbaseFloatingPanel(options?: UseArchbaseFloatingPanelOptions): UseArchbaseFloatingPanelReturn;
export default ArchbaseFloatingPanel;
