import { type JsonApiAnalyticalDashboardOutDocument, type JsonApiFilterContextOut, type RestrictedObject } from "@gooddata/api-client-tiger"; import type { IUnavailableDashboardReference, SupportedDashboardReferenceTypes } from "@gooddata/sdk-backend-spi"; import { type IDashboard } from "@gooddata/sdk-model"; import { type TigerAuthenticatedCallGuard } from "../../../types/index.js"; /** The same for the filter-context GET, which links the objects the filters use. */ declare const FILTER_CONTEXT_RELATIONSHIP_KEYS: { readonly displayForm: "labels"; readonly computedAttribute: "computedAttributes"; readonly measure: "metrics"; readonly fact: "facts"; }; type FilterContextInspectedType = keyof typeof FILTER_CONTEXT_RELATIONSHIP_KEYS; /** * Resolves which of the requested dashboard references are unavailable and why. */ export declare function resolveUnavailableReferences(document: JsonApiAnalyticalDashboardOutDocument, types: SupportedDashboardReferenceTypes[]): IUnavailableDashboardReference[]; /** * Unavailable references of the effective dashboard: the stored document's diff, keeping only the * filter-context entries of contexts the effective dashboard uses — a `filterContextRef` or export * override replaces stored contexts, whose availability then does not matter (an override may itself * be another stored context). A dashboard without any filter context is how a forbidden stored * context looks after conversion, so nothing is dropped in that case. */ export declare function resolveUnavailableDashboardReferences(document: JsonApiAnalyticalDashboardOutDocument, dashboard: IDashboard, types: SupportedDashboardReferenceTypes[]): IUnavailableDashboardReference[]; /** * Resolves which filter display forms, computed attributes, metrics and facts referenced by a filter * context are unavailable. Each inspected type must have been requested as an include (`labels`, * `computedAttributes`, `metrics`, `facts`) so the response contains both relationship linkages and * document-level `meta.restricted` for it. */ export declare function resolveUnavailableFilterContextReferences(context: JsonApiFilterContextOut, restricted: RestrictedObject[] | undefined, inspected: FilterContextInspectedType[]): IUnavailableDashboardReference[]; /** * Filter labels, computed attributes, metrics and facts relate to their filter-context entities: the * dashboard GET side-loads the filter contexts as bare items (no `relationships`), so the existence * linkage for filter objects is reachable only through a direct filter-context GET with `include=labels` * (and `computedAttributes`, `metrics`, `facts`), hence this one batched extra request. Types other than * labels are included only when a filter uses them (metric value filters, filters on computed * attributes, metrics and facts limiting a filter's values), so other dashboards never request them. * It inspects the contexts of the effective dashboard, so a `filterContextRef` override is covered; * the synthetic export-override context has no entity behind it and is skipped. * It would become redundant if the backend emitted `relationships.labels` on the filter-context items * inside the dashboard's `included` (not agreed with the backend team — an assumption about a possible * change; the diff already handles such documents). * This is an enrichment: a failure must not fail the dashboard load, so the affected filter objects * are left unlisted (see the `unavailable` contract in sdk-backend-spi). */ export declare function fetchUnavailableFilterDisplayForms(authCall: TigerAuthenticatedCallGuard, workspaceId: string, dashboard: IDashboard, types: SupportedDashboardReferenceTypes[]): Promise; /** * Identifiers of the persisted filter contexts the dashboard actually uses (root and tabs; a * `filterContextRef` override replaces them all). Only a ref typed `filterContext` names an entity * the backend can inspect — the synthetic export-override context is skipped by this rule. */ export declare function inspectableFilterContextIds(dashboard: IDashboard): string[]; export {}; //# sourceMappingURL=referenceAvailability.d.ts.map