import * as React from 'react';
import { IconButtonProps } from '../button';
import { StackProps } from '@mui/material';
declare const sizes: {
    M: number;
    L: number;
    XL: number;
};
export declare const minimizableWindowSizes: (keyof typeof sizes)[];
type MinimizableWindowSize = (typeof minimizableWindowSizes)[number];
export type MinimizableWindowProps = React.PropsWithChildren<{
    /**
     * The title of the MinimizableWindow
     */
    title: string | React.ReactNode;
    size?: MinimizableWindowSize;
    /**
     * If true, the MinimizableWindow is open.
     */
    open: boolean;
    closeable?: boolean;
    /**
     * Window should display the back button. Default `false`.
     * If `true`, the `onBack` prop must be provided.
     */
    showBackButton?: boolean;
    /**
     * Replace the back button with another component
     */
    backButton?: React.ReactNode;
    /**
     * Coords to the element to close window
     */
    targetElement: {
        x: number;
        y: number;
    };
    /**
     * The height of the content of the window.
     */
    contentHeight?: number;
    /**
     * To change icon sizes. Default S
     */
    iconSizes?: IconButtonProps['size'];
    /**
     * The icon ID for the close button.
     */
    closeIconId?: IconButtonProps['iconId'];
    /**
     * The icon ID for the back button.
     */
    backIconId?: IconButtonProps['iconId'];
    /**
     * Custom actions to display on the right side of the header, next to the close button.
     */
    rightActions?: React.ReactNode;
    /**
     * Callback fired when the component requests to be closed.
     */
    onClose?: () => void;
    /**
     * Callback fired when the component requests to go back.
     */
    onBack?: () => void;
} & Pick<StackProps, 'sx'>>;
/**
 * A component that displays a window with a title and a close button.
 * The window closes by shrinking towards a target element.
 * The window can have a back button.
 * The ref object exposes the window and header elements.
 */
declare const MinimizableWindow: React.ForwardRefExoticComponent<{
    /**
     * The title of the MinimizableWindow
     */
    title: string | React.ReactNode;
    size?: MinimizableWindowSize;
    /**
     * If true, the MinimizableWindow is open.
     */
    open: boolean;
    closeable?: boolean;
    /**
     * Window should display the back button. Default `false`.
     * If `true`, the `onBack` prop must be provided.
     */
    showBackButton?: boolean;
    /**
     * Replace the back button with another component
     */
    backButton?: React.ReactNode;
    /**
     * Coords to the element to close window
     */
    targetElement: {
        x: number;
        y: number;
    };
    /**
     * The height of the content of the window.
     */
    contentHeight?: number;
    /**
     * To change icon sizes. Default S
     */
    iconSizes?: IconButtonProps["size"];
    /**
     * The icon ID for the close button.
     */
    closeIconId?: IconButtonProps["iconId"];
    /**
     * The icon ID for the back button.
     */
    backIconId?: IconButtonProps["iconId"];
    /**
     * Custom actions to display on the right side of the header, next to the close button.
     */
    rightActions?: React.ReactNode;
    /**
     * Callback fired when the component requests to be closed.
     */
    onClose?: () => void;
    /**
     * Callback fired when the component requests to go back.
     */
    onBack?: () => void;
} & Pick<StackProps, "sx"> & {
    children?: React.ReactNode | undefined;
} & React.RefAttributes<{
    window: HTMLDivElement | null;
    header: HTMLDivElement | null;
}>>;
export default MinimizableWindow;
