import { ReactElement, ReactFragment, ReactNode, ReactPortal } from "react";
import { FloatingWindowContextType, FloatingWindowPosition, FloatingWindowSize } from "../contexts/FloatingWindowContext";
export interface FloatingWindowRenderProps {
    context: FloatingWindowContextType;
    windowProps: FloatingWindowProps;
    isPoppedOut: boolean;
    standardButtons: JSX.Element[];
    onClose: () => void;
    onPopout: () => void;
    onPopin: () => void;
}
type FloatingWindowRenderCallback = (props: FloatingWindowRenderProps) => ReactNode;
export interface FloatingWindowProps {
    name: string;
    title?: string;
    children?: ReactNode;
    initialPosition: FloatingWindowPosition;
    initialSize: FloatingWindowSize;
    minSize?: FloatingWindowSize;
    startPoppedOut?: boolean;
    startDisplayed?: boolean;
    bounds?: string;
    standardButtons?: boolean;
    render?: FloatingWindowRenderCallback;
    observeStyleChanges?: boolean;
    headerProps?: string | ReactElement | ReactFragment | ReactPortal | FloatingWindowRenderCallback;
}
export declare const FloatingWindow: (props: FloatingWindowProps) => JSX.Element | null;
export declare const FloatingWindowPopinButton: (props: {
    onPopin?: () => void;
}) => JSX.Element;
export declare const FloatingWindowPopoutButton: (props: {
    onPopout?: () => void;
}) => JSX.Element;
export declare const FloatingWindowCloseButton: (props: {
    onClose?: () => void;
}) => JSX.Element;
export declare const FloatingWindowButtonDivider: () => JSX.Element;
export {};
//# sourceMappingURL=FloatingWindow.d.ts.map