import { type AnalyticalWidgetType, type IDashboardLayout, type IDashboardLayoutContainerDirection, type IDashboardLayoutItem, type IDashboardLayoutSize, type IDashboardLayoutSizeByScreenSize, type IInsight, type IInsightDefinition, type IKpi, type ISettings, type ScreenSize } from "@gooddata/sdk-model";
import { type IVisualizationSizeInfo } from "@gooddata/sdk-ui-ext";
import { type ExtendedDashboardWidget } from "../../model/types/layoutTypes.js";
import { type ILayoutItemPath } from "../../types.js";
import { type ObjRefMap } from "../metadata/objRefMap.js";
/**
 * @internal
 */
export type MeasurableWidgetContent = IInsightDefinition | IKpi;
/**
 * @internal
 */
export declare function getSizeInfo(settings: ISettings, widgetType: AnalyticalWidgetType | ExtendedDashboardWidget["type"], widgetContent?: MeasurableWidgetContent): IVisualizationSizeInfo;
/**
 * @internal
 */
export declare function getInsightPlaceholderSizeInfo(settings: ISettings): IVisualizationSizeInfo;
/**
 * @internal
 */
export declare function getDashboardLayoutWidgetDefaultHeight(settings: ISettings, widgetType: AnalyticalWidgetType, widgetContent?: MeasurableWidgetContent): number;
/**
 * @internal
 */
export declare function getDashboardLayoutWidgetMinGridHeight(settings: ISettings, widgetType: AnalyticalWidgetType | ExtendedDashboardWidget["type"], widgetContent?: MeasurableWidgetContent): number;
/**
 * @internal
 */
export declare function getDashboardLayoutWidgetMaxGridHeight(settings: ISettings, widgetType: AnalyticalWidgetType | ExtendedDashboardWidget["type"], widgetContent?: MeasurableWidgetContent): number;
export declare function getContainerHeight(container: IDashboardLayoutItem<ExtendedDashboardWidget>, screen: ScreenSize, settings: ISettings): number;
/**
 * @internal
 */
export declare function getMinHeight(widgets: IDashboardLayoutItem<ExtendedDashboardWidget>[], insightMap: ObjRefMap<IInsight>, screen: ScreenSize, settings: ISettings, defaultMin?: number): number;
/**
 * @internal
 */
export declare function getMaxHeight(layoutItems: IDashboardLayoutItem<ExtendedDashboardWidget>[], insightMap: ObjRefMap<IInsight>, screen: ScreenSize, settings: ISettings): number;
/**
 * @internal
 */
export declare function getDashboardLayoutWidgetMinGridWidth(settings: ISettings, widgetType: AnalyticalWidgetType | ExtendedDashboardWidget["type"], widgetContent?: MeasurableWidgetContent): number;
/**
 * @internal
 */
export declare function getMinWidth(widget: ExtendedDashboardWidget, insightMap: ObjRefMap<IInsight>, screen: ScreenSize, settings: ISettings, direction: IDashboardLayoutContainerDirection): number;
export declare function normalizeItemSizeToParent(itemToCheck: IDashboardLayoutItem<ExtendedDashboardWidget>, itemPath: ILayoutItemPath | undefined, layout: IDashboardLayout<ExtendedDashboardWidget>, settings: ISettings, insightsMap: ObjRefMap<IInsight>, screen?: ScreenSize): {
    item: IDashboardLayoutItem<ExtendedDashboardWidget>;
    sizeChanged: boolean;
};
/**
 * @internal
 */
export declare function calculateWidgetMinHeight(layoutItem: IDashboardLayoutItem<ExtendedDashboardWidget>, currentSize: IDashboardLayoutSize | undefined, insightMap: ObjRefMap<IInsight>, settings: ISettings, isExportMode?: boolean): number | undefined;
export declare const getDashboardLayoutItemHeight: (size: IDashboardLayoutSize) => number | undefined;
export declare const getDashboardLayoutItemHeightForGrid: (gridHeight: number) => number;
export declare const determineSizeForScreen: (screen: ScreenSize, layoutItemSize?: IDashboardLayoutSizeByScreenSize | undefined) => IDashboardLayoutSize;
export declare const determineWidthForScreen: (screen: ScreenSize, layoutItemSize?: IDashboardLayoutSizeByScreenSize | undefined) => number;
/**
 * Derive dashboard layout size for all screens from dashboard layout size defined for xl screen.
 * We have only xl size saved in metadata, this will create additional screen sizes based on xl.
 *
 * @param xlSize - dashboard layout size for xl screen
 */
export declare function implicitLayoutItemSizeFromXlSize(xlSize: IDashboardLayoutSize): IDashboardLayoutSizeByScreenSize;
/**
 * Divide the items into a list representing the future rows of the grid.
 * This is useful for performing item transformations, depending on how they really appear in the grid.
 *
 * @param items - dashboard layout items
 * @param parentLayoutSize - the size of parent layout, undefined if the items are in the root layout
 * @param screen - responsive screen class
 */
export declare function splitDashboardLayoutItemsAsRenderedGridRows<TWidget>(items: IDashboardLayoutItem<TWidget>[], parentLayoutSize: IDashboardLayoutSizeByScreenSize | undefined, screen: ScreenSize): IDashboardLayoutItem<TWidget>[][];
//# sourceMappingURL=sizing.d.ts.map