import { type FilterContextItem, type IAttribute, type IAttributeDisplayFormMetadataObject, type IDashboardTab, type IDrillToAttributeUrl, type IDrillToCustomUrl, type IFilter, type IInsight, type IListedDashboard, type IMeasure, type InsightDrillDefinition, type LocalIdRef, type ObjRef } from "@gooddata/sdk-model";
import { type IAvailableDrillTargets } from "@gooddata/sdk-ui";
import { type ObjRefMap } from "../../../../_staging/metadata/objRefMap.js";
import { type IInaccessibleDashboard } from "../../../types/inaccessibleDashboardTypes.js";
export declare function validateDrillDefinitionOrigin(drillDefinition: InsightDrillDefinition, drillTargets: IAvailableDrillTargets): InsightDrillDefinition;
export declare function existsDrillDefinitionInArray(drillDefinition: InsightDrillDefinition, drillDefinitionArray?: InsightDrillDefinition[]): boolean;
export declare function getDrillDefinitionFromArray(drillDefinition: InsightDrillDefinition, drillDefinitionArray?: InsightDrillDefinition[]): InsightDrillDefinition | undefined;
export declare function validateDrillDefinitionByLocalIdentifier(ref: LocalIdRef, drillDefinitionArray?: InsightDrillDefinition[]): InsightDrillDefinition;
export declare function wasDrillFilterConfigurationSanitized(originalDrillDefinition: InsightDrillDefinition, validatedDrillDefinition: InsightDrillDefinition): boolean;
export declare function extractInsightRefs(items: ReadonlyArray<InsightDrillDefinition>): ObjRef[];
export declare function extractDisplayFormIdentifiers(drillDefinitions: InsightDrillDefinition[]): ObjRef[];
export declare function extractDashboardFilterDisplayFormIdentifiers(drillDefinitions: InsightDrillDefinition[]): ObjRef[];
export declare function extractInsightFilterDisplayFormIdentifiers(drillDefinitions: InsightDrillDefinition[]): ObjRef[];
export interface IInsightDrillDefinitionValidationData {
    widgetInsightAttributes: IAttribute[];
    sourceInsightFilters: IFilter[];
    sourceInsightMeasures: IMeasure[];
    dashboardFilters: FilterContextItem[];
    dashboardsMap: ObjRefMap<IListedDashboard>;
    insightsMap: ObjRefMap<IInsight>;
    displayFormsMap: ObjRefMap<IAttributeDisplayFormMetadataObject>;
    availableDrillTargets: IAvailableDrillTargets;
    inaccessibleDashboardsMap: ObjRefMap<IInaccessibleDashboard>;
    currentDashboardRef: ObjRef | undefined;
    currentDashboardTabs: IDashboardTab[] | undefined;
}
export declare function validateInsightDrillDefinition(drillDefinition: InsightDrillDefinition, validationContext: IInsightDrillDefinitionValidationData): InsightDrillDefinition;
export declare function validateDrillToCustomURLDefinition(drillDefinition: IDrillToCustomUrl, validationContext: IInsightDrillDefinitionValidationData): IDrillToCustomUrl;
export declare function validateDrillToAttributeUrlDefinition(drillDefinition: IDrillToAttributeUrl, validationContext: IInsightDrillDefinitionValidationData): IDrillToAttributeUrl;
//# sourceMappingURL=insightDrillDefinitionUtils.d.ts.map