import { DashboardChangeEvent, DashboardConfig, DashboardProps, WidgetProps, WidgetsPanelColumnLayout } from '@sisense/sdk-ui'; import { HttpClient } from '@sisense/sdk-rest-client'; import { JaqlDataSourceForDto } from '@sisense/sdk-data'; export type DashboardChangeResult = { changed: boolean; updatedDashboardProps: DashboardProps; }; /** * Extract widget IDs from layout structure */ export declare function extractWidgetIdsFromLayout(layout: WidgetsPanelColumnLayout): string[]; /** * Remove cells that reference non-existent widgets, empty rows, and empty columns */ export declare function cleanupOrphanedCells(layout: WidgetsPanelColumnLayout, existingWidgetIds: Set): WidgetsPanelColumnLayout; /** * Set width to 100% if layout has only one column */ export declare function adjustSingleColumnWidth(layout: WidgetsPanelColumnLayout): WidgetsPanelColumnLayout; /** * Find widgets that exist in dashboard but not in layout */ export declare function findOutOfPlaceWidgets(widgets: WidgetProps[], layout: WidgetsPanelColumnLayout | undefined): string[]; /** * Orchestrate all cleanup steps after any dashboard change */ export declare function cleanupDashboardAfterChange(dashboardProps: DashboardProps): DashboardChangeResult; export declare function getDashboardDataSourcesMap(dashboardProps: DashboardProps): Map; export declare function layoutDashboardWidgets(widgetOids: string[]): WidgetsPanelColumnLayout; /** * Adds a widget to a new row in the column with the smallest number of rows and returns the updated layout. * * @param layout - The dashboard layout object to modify. * @param widgetId - The ID of the widget to add to the new row. * @returns The updated layout object with the new widget added. */ export declare function withWidgetAdded(layout: WidgetsPanelColumnLayout, widgetId: string): WidgetsPanelColumnLayout; export declare function getBaseDashboardConfig(): DashboardConfig; export declare function createEmptyDashboard(dataSourceTitle: string, dashboardTitle: string, httpClient?: HttpClient): Promise; export declare function resetWidgetForDashboard(widget: WidgetProps): WidgetProps; export declare function addWidgetsToDashboard(dashboardProps: DashboardProps, widgetsToAdd: WidgetProps[]): DashboardProps; export declare function updateDashboardWidgetsLayout(dashboardProps: DashboardProps, newWidgetIds?: string[]): DashboardProps; export declare function updateDashboardTitle(dashboardProps: DashboardProps, dashboardTitle: string): DashboardProps; export declare function createNewDashboard(dataSourceTitle: string, dashboardTitle: string, widgets?: WidgetProps[], httpClient?: HttpClient): Promise; export declare function addWidgetsToExistingDashboard(dashboardProps: DashboardProps, widgets: WidgetProps[]): DashboardProps; export declare function deleteWidgetsFromDashboard(dashboardProps: DashboardProps, widgetIds: string[]): DashboardProps; export declare function changeDashboard(dashboardProps: DashboardProps, event: DashboardChangeEvent): DashboardChangeResult; //# sourceMappingURL=dashboards-service.d.ts.map