import { type IDashboardObjectIdentity, type ObjRef } from "@gooddata/sdk-model";
import { type DashboardItemDefinition, type ExtendedDashboardItem, type ExtendedDashboardWidget, type InternalDashboardItemDefinition } from "../types/layoutTypes.js";
export declare function extractInsightRefsFromItems(items: ReadonlyArray<ExtendedDashboardItem>): ObjRef[];
/**
 * Tests whether the provided object is/has a temporary identity. A temporary identity is used for those
 * objects which are not yet persisted however need to be reference-able from the dashboard itself.
 *
 * @param obj - object to test
 * @internal
 */
export declare function isTemporaryIdentity(obj: IDashboardObjectIdentity): boolean;
/**
 * Adds temporary identity to all insight and KPI widget definitions found within the provided dashboard item
 * definitions.
 *
 * Having an identity for each widget is important for the dashboard; many places both internal and through
 * public API for different use-cases rely on identification of widget by reference.
 *
 * This function will map the input items so that the result never contains bare insight widget definitions
 * or kpi widget definitions (which do not have the identity).
 *
 * The identity assigned to those widgets is temporary one. It is a specially formatted identifier combined
 * with UUID. You can use {@link isTemporaryIdentity} function to test whether object has temporary
 * identity. When the dashboard gets saved, this temporary identity will change to permanent one that
 * will be assigned by the backend.
 *
 * @param items - items to map, will not be modified
 * @returns new array with the necessary items mapped to widgets with temporary identity.
 * @internal
 */
export declare function addTemporaryIdentityToWidgets(items: ReadonlyArray<DashboardItemDefinition>): InternalDashboardItemDefinition[];
/**
 * Safely gets the title from an ExtendedDashboardWidget.
 *
 * @param widget - The widget to get title from
 * @param fallbackTitle - Title to return if widget doesn't have a title property
 * @returns The widget title if available, otherwise the fallback title
 * @public
 */
export declare function getWidgetTitle(widget?: ExtendedDashboardWidget, fallbackTitle?: string): string;
//# sourceMappingURL=dashboardItemUtils.d.ts.map