import { AbstractLayout, Dimension, EnumObject, FlexboxLayoutData, HtmlComponent, HtmlCompPrefSizeOptions } from '../../index';
export type FlexboxDirection = EnumObject<typeof FlexboxLayout.Direction>;
export declare class FlexboxLayout extends AbstractLayout {
    childrenLayoutDatas: FlexboxLayoutData[];
    cacheKey: string[];
    protected _getDimensionValue: (dimension: Dimension) => number;
    protected _layoutFromLayoutData: (children: HtmlComponent[], containerSize: Dimension) => void;
    constructor(direction: FlexboxDirection, cacheKey: string[]);
    static Direction: {
        readonly COLUMN: 0;
        readonly ROW: 1;
    };
    setCacheKey(cacheKey: string[]): void;
    protected _readCache(childCount: number): number[];
    protected _writeCache(childCount: number, sizes: number[]): void;
    protected _computeCacheKey(childCount: number): string;
    layout($container: JQuery): void;
    protected _getChildren($container: JQuery): HtmlComponent[];
    reset(): void;
    protected _layoutDelta(children: HtmlComponent[], deltaComp: HtmlComponent, containerSize: Dimension): void;
    protected _layoutComponents(children: HtmlComponent[], containerSize: Dimension): void;
    protected _adjust(children: HtmlComponent[], delta: number, getWeightFunction: (ld: FlexboxLayoutData) => number): void;
    protected _getPreferredSize(htmlComp: HtmlComponent): Dimension;
    ensureInitialValues(children: HtmlComponent[], containerSize: Dimension): number;
    protected _layoutFromLayoutDataWithCache(children: HtmlComponent[], containerSize: Dimension): void;
    protected _cacheSizes(children: HtmlComponent[], containerSize: Dimension): void;
    preferredLayoutSizeColumn($container: JQuery, options: HtmlCompPrefSizeOptions): Dimension;
    preferredLayoutSizeRow($container: JQuery, options: HtmlCompPrefSizeOptions): Dimension;
    protected _getWidth(dimension: Dimension): number;
    protected _getHeight(dimension: Dimension): number;
    protected _layoutFromLayoutDataRow(children: HtmlComponent[], containerSize: Dimension): void;
    protected _layoutFromLayoutDataColumn(children: HtmlComponent[], containerSize: Dimension): void;
}
//# sourceMappingURL=FlexboxLayout.d.ts.map