import { type IntlShape } from "react-intl";
import { type FilterContextItem, type IAutomationVisibleFilter, type ICatalogAttribute, type ICatalogDateDataset, type ICatalogMeasure, type IDashboardAttributeFilterConfig, type IDashboardDateFilterConfigItem, type IDashboardMeasureValueFilterConfig, type IDateFilter, type IFilter, type IInsight, type ObjRef } from "@gooddata/sdk-model";
import { type ExtendedDashboardWidget } from "../../../../model/types/layoutTypes.js";
export declare const getFilterLocalIdentifier: (filter: FilterContextItem) => string | undefined;
export declare const validateAllFilterLocalIdentifiers: (filters: FilterContextItem[]) => boolean;
export declare const areFiltersMatchedByIdentifier: (filter1: FilterContextItem, filter2: FilterContextItem) => boolean;
export declare const getNonSelectedFilters: (allFilters: FilterContextItem[], selectedFilters: FilterContextItem[]) => FilterContextItem[];
export declare const getCatalogAttributesByFilters: (filters: FilterContextItem[], attributes: ICatalogAttribute[], attributeConfigs: IDashboardAttributeFilterConfig[]) => ICatalogAttribute[];
export declare const getCatalogMeasuresByFilters: (filters: FilterContextItem[], measures: ICatalogMeasure[], mvfConfigs: IDashboardMeasureValueFilterConfig[]) => ICatalogMeasure[];
export declare const getCatalogDateDatasetsByFilters: (filters: FilterContextItem[], dateDataset: ICatalogDateDataset[], dateConfigs: IDashboardDateFilterConfigItem[]) => ICatalogDateDataset[];
export declare const getFilterByCatalogItemRef: (ref: ObjRef, filters: FilterContextItem[]) => FilterContextItem | undefined;
export declare const getVisibleFiltersByFilters: (selectedFilters: FilterContextItem[] | undefined, visibleFiltersMetadata: IAutomationVisibleFilter[] | undefined, storeFilters?: boolean | undefined) => IAutomationVisibleFilter[] | undefined;
/**
 * Get visible filters metadata structured by tab.
 * Applies the same logic as getVisibleFiltersByFilters to each tab's filters.
 */
export declare const getVisibleFiltersByFiltersByTab: (filtersByTab: Record<string, FilterContextItem[]> | undefined, visibleFiltersMetadata: Record<string, IAutomationVisibleFilter[]> | undefined, storeFilters?: boolean | undefined) => Record<string, IAutomationVisibleFilter[]> | undefined;
/**
 * Resolve MVF dimensionality localIdRefs to stable identifierRefs using the insight's attributes.
 *
 * Measure value filters may reference attributes in their dimensionality via localIdRef,
 * which is only meaningful within the insight's own execution context. When these filters
 * are used in an alert execution (which may not include the original attributes), the
 * localIdRefs become dangling. This function resolves them to display form identifierRefs.
 */
export declare function resolveMvfDimensionalityLocalRefs(filters: IFilter[], insight: IInsight | undefined): IFilter[];
/**
 * Get final execution filters for the widget alert or scheduled export.
 */
export declare const getAppliedWidgetFilters: (selectedAutomationFilters: FilterContextItem[], dashboardHiddenFilters: FilterContextItem[], widget: ExtendedDashboardWidget | undefined, insight: IInsight | undefined, commonDateFilterId: string | undefined, mergeInsightFilters?: boolean, withoutWidget?: boolean) => IFilter[];
/**
 * Get final filters for the dashboard scheduled export.
 */
export declare const getAppliedDashboardFilters: (selectedAutomationFilters: FilterContextItem[], dashboardHiddenFilters: FilterContextItem[], storeFilters?: boolean | undefined) => FilterContextItem[] | undefined;
export declare const getNonHiddenFilters: (filters: FilterContextItem[] | undefined, attributeConfigs: IDashboardAttributeFilterConfig[], dateConfigs: IDashboardDateFilterConfigItem[], isCommonDateFilterHidden: boolean, disableDateFilters: boolean) => FilterContextItem[];
export declare const getFilterByLocalIdentifier: (localIdentifier: string | undefined, filters: FilterContextItem[]) => FilterContextItem | undefined;
/**
 * Analytical Designer is storing all-time date filters inconsistently,
 * it does not use ALL_TIME_GRANULARITY, but instead stores it as relative date filter without from / to values.
 * This function is used to fix this inconsistency.
 */
export declare function isAllTimeDateFilterFixed(f: IFilter): boolean;
/**
 * Similar to {@link isAllTimeDateFilterFixed}, but only matches *noop* all-time filters.
 *
 * @remarks
 * Noop all-time filters are implicit defaults and have no effect on execution. All-time filters with `emptyValueHandling`
 * are considered meaningful (they carry extra configuration) and should not be treated as no-op.
 */
export declare function isNoopAllTimeDateFilterFixed(f: IFilter): boolean;
export declare function areFiltersEqual(filter1: IFilter, filter2: IFilter): boolean;
export declare function dateFilterValues(filter: IDateFilter): import("@gooddata/sdk-model").IAbsoluteDateFilterValues | import("@gooddata/sdk-model").IRelativeDateFilterValues;
export declare function isFilterIgnoredByWidget(filter: FilterContextItem, widget: ExtendedDashboardWidget): boolean;
export declare function isFilterMatch(filter1: IFilter, filter2: IFilter): boolean;
export declare const getFilterTitle: (filter: FilterContextItem, allAttributes: ICatalogAttribute[], allDateDatasets: ICatalogDateDataset[], intl: IntlShape) => string;
//# sourceMappingURL=utils.d.ts.map