import { type SagaIterator } from "redux-saga";
import { type FilterContextItem, type IAttribute, type IDashboardTab, type IFilter, type IListedDashboard, type IMeasure, type InsightDrillDefinition, type ObjRef } from "@gooddata/sdk-model";
import { type ObjRefMap } from "../../../../_staging/metadata/objRefMap.js";
import { type IDashboardCommand } from "../../../commands/base.js";
import { type IDrillTargets } from "../../../store/drillTargets/drillTargetsTypes.js";
import { type DashboardContext } from "../../../types/commonTypes.js";
import { type IInaccessibleDashboard } from "../../../types/inaccessibleDashboardTypes.js";
import { type DisplayFormResolutionResult } from "../../../utils/displayFormResolver.js";
import { type IInsightResolutionResult } from "../../../utils/insightResolver.js";
export declare function validateDrillDefinition(drillDefinition: InsightDrillDefinition, validationData: IDrillDefinitionValidationData, ctx: DashboardContext, cmd: IDashboardCommand): InsightDrillDefinition;
export interface IDrillDefinitionValidationData {
    widgetInsightAttributes: IAttribute[];
    sourceInsightFilters: IFilter[];
    sourceInsightMeasures: IMeasure[];
    dashboardFilters: FilterContextItem[];
    drillTargets: IDrillTargets | undefined;
    resolvedInsights: IInsightResolutionResult;
    resolvedDisplayForms: DisplayFormResolutionResult;
    accessibleDashboardMap: ObjRefMap<IListedDashboard>;
    inaccessibleDashboardsMap: ObjRefMap<IInaccessibleDashboard>;
    currentDashboardRef: ObjRef | undefined;
    currentDashboardTabs: IDashboardTab[] | undefined;
}
export declare function getValidationData(widgetRef: ObjRef, drillsToModify: InsightDrillDefinition[], ctx: DashboardContext): SagaIterator<IDrillDefinitionValidationData>;
//# sourceMappingURL=insightDrillDefinitionValidation.d.ts.map