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; 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;