import type { Rect } from "../../events/manager/types.js"; export type TFlexDirection = "row" | "column"; export type TFlexAlign = "start" | "center" | "end" | "stretch"; export type TFlexJustify = "start" | "center" | "end" | "space-between"; export type TFlexAlignContent = "start" | "center" | "end" | "space-between" | "stretch"; export type TFlexSize = number | string; export type TFlexMeasureConstraints = Readonly<{ maxWidth: number; maxHeight: number; direction: TFlexDirection; }>; export type TFlexMeasureResult = Readonly<{ width?: number; height?: number; w?: number; h?: number; }>; export type TFlexMeasure = (constraints: TFlexMeasureConstraints) => TFlexMeasureResult; export type TFlexItemSlotProps = Readonly<{ rect: Rect; }>; export type BoxEdges = Readonly<{ top: number; right: number; bottom: number; left: number; }>; export type FlexLayoutInputItem = Readonly<{ grow: number; shrink: number; basis: TFlexSize | undefined; width: TFlexSize | undefined; height: TFlexSize | undefined; minWidth: TFlexSize | undefined; minHeight: TFlexSize | undefined; maxWidth: TFlexSize | undefined; maxHeight: TFlexSize | undefined; measure: TFlexMeasure | undefined; measureCache: Map | undefined; marginTop: number; marginRight: number; marginBottom: number; marginLeft: number; alignSelf: TFlexAlign | undefined; }>; export type FlexLayoutItem = Readonly<{ item: TItem; rect: Rect; }>; export declare function normalizeCellCount(value: unknown, fallback?: number): number; export declare function normalizeOptionalCellCount(value: unknown): number | undefined; export declare function normalizeRatio(value: unknown, fallback: number): number; export declare function layoutFlexItems(items: readonly TItem[], options: Readonly<{ w: number; h: number; direction: TFlexDirection; mainGap: number; crossGap: number; padding: BoxEdges; alignItems: TFlexAlign; justifyContent: TFlexJustify; alignContent: TFlexAlignContent; wrap: boolean; }>): FlexLayoutItem[];