import { type DashboardAttributeFilterSelectionType, type FilterContextItem, type IAutomationMetadataObject, type IAutomationVisibleFilter, type IFilter, type IInsight } from "@gooddata/sdk-model";
import type { ExtendedDashboardWidget } from "../../../model/types/layoutTypes.js";
export interface IAutomationValidationResult {
    isValid: boolean;
    hiddenFilterIsMissingInSavedFilters: boolean;
    hiddenFilterHasDifferentValueInSavedFilter: boolean;
    lockedFilterIsMissingInSavedFilters: boolean;
    lockedFilterHasDifferentValueInSavedFilter: boolean;
    ignoredFilterIsAppliedInSavedFilters: boolean;
    removedFilterIsAppliedInSavedFilters: boolean;
    commonDateFilterIsMissingInSavedVisibleFilters: boolean;
    visibleFilterIsMissingInSavedFilters: boolean;
    visibleFiltersAreMissing: boolean;
    incompatibleSelectionTypeIsAppliedInSavedFilters: boolean;
}
export declare function useValidateExistingAutomationFilters({ automationToEdit, widget, insight, enableAutomationFilterContext }: {
    automationToEdit?: IAutomationMetadataObject;
    widget?: ExtendedDashboardWidget;
    insight?: IInsight;
    enableAutomationFilterContext?: boolean;
}): IAutomationValidationResult;
/**
 * Validate existing automation filters against current dashboard filter context and optionally saved widget / insight.
 * Check for inconsistencies, that could lead to unwanted results when editing existing automation.
 *
 * What can happen:
 * - Hidden filter value on the dashboard is different from the saved automation filter value, or it is missing
 * - Locked filter value on the dashboard is different from the saved automation filter value, or it is missing
 * - Some insight filter is missing in the saved automation, or it has different value
 * - Ignored filter is applied in the saved automation
 * - Removed filter is applied in the saved automation
 * - Attribute filter display form has changed
 * - Common non all-time date filter is missing in the saved automation visible filters
 * - Visible filter is missing in the saved automation filters
 */
export declare function validateExistingAutomationFilters({ savedAutomationFilters, savedAutomationVisibleFilters, hiddenFilters, lockedFilters, ignoredFilters, dashboardFilters, widget, insight, selectionTypeMap }: {
    savedAutomationFilters: IFilter[];
    savedAutomationVisibleFilters: undefined | IAutomationVisibleFilter[];
    hiddenFilters: FilterContextItem[];
    lockedFilters: FilterContextItem[];
    ignoredFilters: FilterContextItem[];
    dashboardFilters: FilterContextItem[];
    widget?: ExtendedDashboardWidget;
    insight?: IInsight;
    selectionTypeMap?: Map<string, DashboardAttributeFilterSelectionType | undefined>;
}): IAutomationValidationResult;
export interface IAutomationFiltersPerTabData {
    tabId: string;
    availableFilters: FilterContextItem[];
    hiddenFilters: FilterContextItem[];
    lockedFilters: FilterContextItem[];
}
/**
 * Validate existing automation filters for dashboards with per-tab filter structure.
 * Validates each tab's filters and aggregates results - if any tab is invalid, the whole automation is invalid.
 */
export declare function validateExistingAutomationFiltersPerTab({ savedDashboardFiltersByTab, savedAutomationVisibleFiltersByTab, dashboardFiltersPerTab, commonDateFilterId, selectionTypeMapByTab }: {
    savedDashboardFiltersByTab: Record<string, FilterContextItem[]>;
    savedAutomationVisibleFiltersByTab: Record<string, IAutomationVisibleFilter[]>;
    dashboardFiltersPerTab: IAutomationFiltersPerTabData[];
    commonDateFilterId?: string;
    selectionTypeMapByTab?: Record<string, Map<string, DashboardAttributeFilterSelectionType | undefined>>;
}): IAutomationValidationResult;
//# sourceMappingURL=useValidateExistingAutomationFilters.d.ts.map