import { AbstractLayout, Dimension, EllipsisMenu, HtmlCompPrefSizeOptions, Menu, MenuBox } from '../../index';
export declare class MenuBoxLayout extends AbstractLayout {
    menuBox: MenuBox;
    /** References to prevent too many DOM updates */
    firstMenu: Menu;
    lastMenu: Menu;
    protected _ellipsis: EllipsisMenu;
    constructor(menuBox: MenuBox);
    layout($container: JQuery): void;
    preferredLayoutSize($container: JQuery, options?: HtmlCompPrefSizeOptions): Dimension;
    compact(menus?: Menu[]): void;
    undoCompact(menus?: Menu[]): void;
    /**
     * Sets all menus into compact mode.
     */
    compactMenus(menus?: Menu[]): void;
    /**
     * Restores to the previous state of the compact property.
     */
    undoCompactMenus(menus?: Menu[]): void;
    shrink(menus?: Menu[]): void;
    /**
     * Makes the text invisible of all menus with an icon.
     */
    shrinkMenus(menus?: Menu[]): void;
    undoShrink(menus?: Menu[]): void;
    undoShrinkMenus(menus?: Menu[]): void;
    collapse(containerSize: Dimension, menusWidth: number): void;
    /**
     * Undoes the collapsing by removing ellipsis and rendering non-rendered menus.
     */
    undoCollapse(menus?: Menu[]): void;
    protected _createAndRenderEllipsis(): void;
    protected _destroyEllipsis(): void;
    /**
     * Moves every menu which doesn't fit into the container into the ellipsis menu.
     * Returns the list of "surviving" menus (with the ellipsis menu being the last element).
     */
    protected _moveOverflowMenusIntoEllipsis(containerSize: Dimension, menusWidth: number): Menu[];
    protected _removeMenusFromEllipsis(menus?: Menu[]): void;
    actualPrefSize(menus?: Menu[]): Dimension;
    /**
     * @returns the current width of all menus incl. the ellipsis
     */
    protected _menusWidth(menus?: Menu[]): number;
    compactPrefSize(menus?: Menu[]): Dimension;
    shrinkPrefSize(menus?: Menu[]): Dimension;
    visibleMenus(): Menu[];
    updateFirstAndLastMenuMarker(menus?: Menu[]): void;
}
//# sourceMappingURL=MenuBoxLayout.d.ts.map