import React from 'react';
export type ContainerSize = {
    width: number;
    height: number;
};
export type DynamicSizeContainerProps = {
    children: React.ReactNode | ((size: ContainerSize) => React.ReactNode);
    defaultSize: ContainerSize;
    size?: Partial<ContainerSize>;
    rerenderOnResize?: boolean;
    useContentSize?: {
        width?: boolean;
        height?: boolean;
    };
    onSizeChange?: (size: ContainerSize) => void;
    debounceMs?: number;
};
/**
 * A container component that adjusts its content size according to provided sizes
 * or dynamically based on inherited size from the parent/containing element.
 *
 * Priorities:
 * (1) If "useContentSize" is specified, it takes the highest priority.
 * (2) Then if a "size" is provided, it takes the priority.
 * (3) Then the container's size is used.
 * (4) Otherwise the "defaultSize" is used.
 *
 * Component Structure:
 * The component layout consists of multiple layers to address different requirements:
 * - Container layer: The top `div` that handles inheriting the parent size.
 * - Content layer: The middle `div` that represents the actual content size.
 * - Detached content layer: The bottom `div` that detaches the internal content (using "absolute" positioning) from the layout to prevent the parent layout from being constrained by its content size.
 *
 * Limitations:
 * - It is not possible to determine if a parent element has no size to inherit or if its size has been explicitly set to "0px".
 *   Therefore, the default size will be applied when the parent element's size is set to "0px".
 *
 * @param {DynamicSizeContainerProps} props - DynamicSizeContainer properties.
 * @returns {JSX.Element} The DynamicSizeContainer component.
 */
export declare const DynamicSizeContainer: ({ children, defaultSize, size, rerenderOnResize, useContentSize, onSizeChange, debounceMs, }: DynamicSizeContainerProps) => import("react/jsx-runtime").JSX.Element;
