import { Dimension, HtmlCompPrefSizeOptions, InitModelOf, Insets, LogicalGridData, LogicalGridLayoutInfoModel, Rectangle } from '../../index';
/**
 * JavaScript port of org.eclipse.scout.rt.ui.swing.LogicalGridLayoutInfo.
 */
export declare class LogicalGridLayoutInfo implements LogicalGridLayoutInfoModel {
    model: LogicalGridLayoutInfoModel;
    gridDatas: LogicalGridData[];
    cons: LogicalGridData[];
    cols: number;
    compSize: Dimension[];
    rows: number;
    width: number[][];
    widthHints: number[];
    height: number[][];
    weightX: number[];
    weightY: number[];
    hgap: number;
    vgap: number;
    rowHeight: number;
    columnWidth: number;
    cellBounds: Rectangle[][];
    widthHint: number;
    widthOnly: boolean;
    $components: JQuery[];
    constructor(model: InitModelOf<LogicalGridLayoutInfo>);
    protected _initializeInfo(): void;
    protected _initializeColumns(): void;
    /**
     * @param cons the current grid data
     * @param distWidth the width to distribute to the columns. The width is distributed to the columns equally.
     * @param widths the column widths that have been distributed so far when the previous rows were visited
     * @param fixedWidths the columns with a fixed width (weightx = 0)
     * @param calc a function that is called for each element of the given `widths` array, e.g. to decide whether to use the newly calculated column width or the existing one.
     */
    protected _distributeWidth(cons: LogicalGridData, distWidth: number, widths: number[], fixedWidths: boolean[], calc: (equalWidth: number, width: number) => number): void;
    /**
     * @param cons the current grid data
     * @param distHeight the height to distribute to the rows. The height is distributed to the rows equally.
     * @param widths the row heights that have been distributed so far when the previous column were visited
     * @param fixedHeights the rows with a fixed height (weighty = 0)
     * @param calc a function that is called for each element of the given `heights` array, e.g. to decide whether to use the newly calculated row height or the existing one.
     */
    protected _distributeHeight(cons: LogicalGridData, distHeight: number, heights: number[], fixedHeights: boolean[], calc: (equalWidth: number, width: number) => number): void;
    protected _initializeRows(): void;
    layoutCellBounds(size: Dimension, insets: Insets): Rectangle[][];
    layoutSizes(targetSize: number, sizes: number[][], weights: number[]): number[];
    logicalWidthInPixel(cons: LogicalGridData): number;
    logicalHeightInPixel(cons: LogicalGridData): number;
    uiSizeInPixel($comp: JQuery, options?: HtmlCompPrefSizeOptions): Dimension;
    /**
     * @returns the width hint for the given gridData
     */
    widthHintForGridData(gridData: LogicalGridData): number | null;
}
//# sourceMappingURL=LogicalGridLayoutInfo.d.ts.map