import type { ElementNode } from "../../../fd-toolbox/types/react-types";
/**
 * Props of {@link Dynamic}
 *
 * Used to describe the positioning, sizing, and behavior of
 * dynamic elements in a grid drag-and-drop layout.
 *
 * The {@link Dynamic} component itself does not implement position or sizing logic,
 * it only passes data to the parent container {@link DynamicLayoutDragAndDrop},
 * which uses these props to build the grid and manage elements.
 */
export interface DynamicProps {
    /** Minimum width of an element in the grid, in conditional columns.*/
    minWidth?: number;
    /** Minimum height of a grid element in rows.*/
    minHeight?: number;
    /** Maximum width of an element in the grid.*/
    maxWidth?: number;
    /** The maximum height of an element in the grid.*/
    maxHeight?: number;
    /** Unique key of the React element.*/
    key?: string;
    /** The initial width of the element when it is first rendered.*/
    defaultWidth?: number;
    /** The initial height of the element when first rendered.*/
    defaultHeight?: number;
    /** The initial X coordinate of the element in the grid.*/
    defaultX?: number;
    /** The initial Y coordinate of the element in the grid.*/
    defaultY?: number;
    /** Flag indicating whether the element is static.*/
    static?: boolean;
    /** Unique element identifier used in layout objects.*/
    id?: string;
    /** Enables or disables dragging of the element.*/
    draggable?: boolean;
    /** Enables or disables resizing of the element.*/
    resizable?: boolean;
    /** A child React element that will be displayed inside the dynamic container.*/
    children?: ElementNode;
}
