import type { LayoutArea, LayoutAreaAllocation, LayoutAreaMode, LayoutWidthBound, ResizeSession, StoredLayoutArea } from './layout-area-sizing-context';
export declare function calculateLayoutAreaStates({ viewportWidth, layoutWidth, isChatPanelOverlay, isSideNavOverlay, occupiedWidth, mainMinWidth: mainMinWidthBound, areas, resizeSession, initialModes, }: {
    viewportWidth: number;
    /**
     * Root's content width, excluding scrollbars, borders and padding.
     */
    layoutWidth?: number;
    /**
     * Whether the viewport is below Root's 40rem inline-chat breakpoint.
     */
    isChatPanelOverlay: boolean;
    /**
     * Whether the viewport is below Root and SideNav's 64rem desktop breakpoint.
     */
    isSideNavOverlay: boolean;
    occupiedWidth?: number;
    mainMinWidth: LayoutWidthBound;
    areas: Partial<Record<LayoutArea, StoredLayoutArea>>;
    resizeSession?: ResizeSession | null;
    /**
     * The CSS-rendered modes during deferred activation. Bounds must describe the
     * existing layout until the user actually resizes it.
     */
    initialModes?: Partial<Record<LayoutArea, LayoutAreaMode>>;
}): Partial<Record<LayoutArea, LayoutAreaAllocation>>;
