import { Container } from "./container.pure.js"; import { type Control } from "./control.pure.js"; import { Measure } from "../measure.js"; /** * Main-axis direction and ordering of a FlexPanel. */ export type FlexDirection = "row" | "row-reverse" | "column" | "column-reverse"; /** * Whether overflowing items form additional lines, and their cross-axis order. */ export type FlexWrap = "nowrap" | "wrap" | "wrap-reverse"; /** * Distribution of spare space along the main axis. */ export type FlexJustification = "flex-start" | "flex-end" | "center" | "space-between" | "space-around" | "space-evenly"; /** * Alignment of items within each line. Stretch fills the line's cross-axis size. */ export type FlexAlignment = "flex-start" | "flex-end" | "center" | "stretch"; /** * Distribution of lines along the cross axis. */ export type FlexContentAlignment = FlexJustification | "stretch"; /** * Arranges controls in flexible rows or columns using their declared width/height as the basis. * Supports wrapping, gaps, alignment and Control.flexGrow/flexShrink without rewriting child properties. * The panel uses its declared size; intrinsic CSS sizing and baseline alignment are not supported. */ export declare class FlexPanel extends Container { private _items; private _lines; private _boxes; private _gap; private _flexDirection; /** * Gets or sets the main axis and item direction. Defaults to row. */ get flexDirection(): FlexDirection; set flexDirection(value: FlexDirection); private _flexWrap; /** * Gets or sets line wrapping. Defaults to nowrap. */ get flexWrap(): FlexWrap; set flexWrap(value: FlexWrap); private _justifyContent; /** * Gets or sets the distribution of remaining main-axis space after flexing. */ get justifyContent(): FlexJustification; set justifyContent(value: FlexJustification); private _alignItems; /** * Gets or sets cross-axis alignment within each line. Stretch fills the line. */ get alignItems(): FlexAlignment; set alignItems(value: FlexAlignment); private _alignContent; /** * Gets or sets cross-axis line distribution when wrapping is enabled. */ get alignContent(): FlexContentAlignment; set alignContent(value: FlexContentAlignment); /** * Gets or sets the gap between items and lines in px, em, rem, or percent of the main-axis size. */ get gap(): string | number; set gap(value: string | number); /** * Creates a flex layout container. * @param name defines the control name */ constructor(name?: string); protected _getTypeName(): string; /** * Removes a control and releases its cached layout data. * @param control defines the control to remove * @returns the current panel */ removeControl(control: Control): FlexPanel; /** @internal */ _getLayoutMeasureForChild(child: Control): Measure | null; private _spacing; private _offset; private _resolveFlexibleLengths; protected _beforeChildLayout(): void; } /** * Registers FlexPanel for serialization. Safe to call repeatedly. */ export declare function RegisterFlexPanel(): void;