import type { WidgetsPanelLayout } from '../../../../domains/dashboarding/dashboard-model/types.js';
/**
 * Location of a widget cell within the layout structure.
 */
export type WidgetCellLocation = {
    columnIndex: number;
    rowIndex: number;
    cellIndex: number;
};
/**
 * Finds the location of a widget cell in the layout.
 *
 * @param layout - The widgets panel layout.
 * @param widgetId - The ID of the widget to find.
 * @returns The cell location, or undefined if not found.
 */
export declare const getWidgetCellLocation: (layout: Readonly<WidgetsPanelLayout>, widgetId: string) => WidgetCellLocation | undefined;
/**
 * Transformer: Inserts a new cell into the same row as the original cell.
 * Splits the original cell's widthPercentage in half: original and new cell each get 50%.
 *
 * @param originalCellLocation - The location of the original cell.
 * @param newWidgetId - The ID of the new widget.
 * @returns A pure transformer that produces the updated layout.
 */
export declare const withNewCellInsertedToTheSameRow: (originalCellLocation: WidgetCellLocation, newWidgetId: string) => (layout: Readonly<WidgetsPanelLayout>) => WidgetsPanelLayout;
/**
 * Transformer: Replaces a widget ID with another in all cells of the layout.
 *
 * @param oldWidgetId - The widget ID to replace.
 * @param newWidgetId - The new widget ID.
 * @returns A pure transformer that produces the updated layout (immutable).
 */
export declare const withReplacedWidgetId: (oldWidgetId: string, newWidgetId: string) => (layout: Readonly<WidgetsPanelLayout>) => WidgetsPanelLayout;
