import { type AnalyticalWidgetType, type IDashboardLayout, type IDashboardLayoutItem, type IDashboardLayoutSize, type IDashboardLayoutSizeByScreenSize, type ISettings, type ScreenSize } from "@gooddata/sdk-model";
import { type IDashboardLayoutItemFacade } from "../../../../_staging/dashboard/flexibleLayout/facade/interfaces.js";
import { type MeasurableWidgetContent } from "../../../../_staging/layout/sizing.js";
import { type ILayoutItemPath } from "../../../../types.js";
/**
 * Unify dashboard layout items height for all screens.
 *
 * @param layout - dashboard layout with items
 @param layoutSize - the size of layout, undefined if the items are in the root layout
 * @param parentLayoutPath - path to a layout item the layout is nested in, undefined when root layout is processed.
 */
export declare function unifyDashboardLayoutItemHeights<TWidget>(layout: IDashboardLayout<TWidget>, parentLayoutSize: IDashboardLayoutSizeByScreenSize | undefined, parentLayoutPath: ILayoutItemPath | undefined): IDashboardLayout<TWidget>;
export declare function unifyDashboardLayoutItemHeights<TWidget>(items: IDashboardLayoutItem<TWidget>[], parentLayoutSize: IDashboardLayoutSizeByScreenSize | undefined, parentLayoutPath: ILayoutItemPath | undefined): IDashboardLayoutItem<TWidget>[];
/**
 * Tuple that represents a item position in the layout
 * [sectionIndex, itemIndex]
 *
 * @internal
 */
type ItemPosition = [number, number];
/**
 *
 * @internal
 */
export declare const getResizedItemPositions: <TWidget>(originalLayout: IDashboardLayout<TWidget>, resizedLayout: IDashboardLayout<TWidget>, positions: ItemPosition[] | undefined, parentLayoutPath: ILayoutItemPath | undefined) => ItemPosition[];
export declare const getDashboardLayoutItemHeightForRatioAndScreen: (size: IDashboardLayoutSize, screen: ScreenSize) => number;
export declare function getDashboardLayoutItemMaxGridWidth(item: IDashboardLayoutItemFacade<any>, screen: ScreenSize): number;
export declare function getDashboardLayoutWidgetDefaultGridWidth(settings: ISettings, widgetType: AnalyticalWidgetType, widgetContent?: MeasurableWidgetContent): number;
export declare function getLayoutWithoutGridHeights<TWidget>(layout: IDashboardLayout<TWidget>): IDashboardLayout<TWidget>;
/**
 * @internal
 */
export declare function validateDashboardLayoutWidgetSize(currentWidth: number, currentHeight: number | undefined, widgetType: AnalyticalWidgetType, widgetContent: MeasurableWidgetContent, settings: ISettings): {
    validWidth: number;
    validHeight?: number;
};
export {};
//# sourceMappingURL=sizing.d.ts.map