import { type IntlShape } from "react-intl";
import { type DashboardTextAttributeFilter, type FilterContextItem, type IAttributeDisplayFormMetadataObject, type ICatalogMeasure, type IDashboardAttributeFilter, type IDashboardAttributeFilterConfig, type IDashboardDateFilterConfigItem, type IMeasure, type ObjRef, type ObjRefInScope, type SourceInsightFilterObjRef } from "@gooddata/sdk-model";
import { type ObjRefMap } from "../../../../../_staging/metadata/objRefMap.js";
import { type IDrillFiltersConfigOption } from "./types.js";
export declare function getMeasureTitleFromSourceInsightMeasures(sourceInsightMeasures: IMeasure[], measureRef: ObjRefInScope | undefined, allCatalogMeasures: ICatalogMeasure[], intl: IntlShape): string | undefined;
export declare function sourceFilterOptionId(sourceFilterObjRef: SourceInsightFilterObjRef): string;
export declare function getDisabledOptionProps(disabled: boolean, message: string, selected: boolean): Partial<Pick<IDrillFiltersConfigOption, "disabled">>;
export declare function getDisabledOptionPropsForTransferResult(isDrillToDashboard: boolean, transferResult: FilterTransferResult, intl: IntlShape): Partial<Pick<IDrillFiltersConfigOption, "disabled">>;
export declare function getDisplayFormTitle({ displayFormRef, allCatalogDisplayFormsMap }: {
    displayFormRef: ObjRefInScope;
    allCatalogDisplayFormsMap: ObjRefMap<IAttributeDisplayFormMetadataObject>;
}): string;
export declare function getDateDatasetTitle({ datasetRef, allCatalogDateDatasets }: {
    datasetRef: ObjRefInScope;
    allCatalogDateDatasets: Array<{
        dataSet: {
            ref: ObjRef;
            title?: string;
        };
    }>;
}): string;
export declare function getDashboardDateFilterCustomTitle({ datasetRef, allDateFilterConfigsOverrides }: {
    datasetRef: ObjRefInScope;
    allDateFilterConfigsOverrides: IDashboardDateFilterConfigItem[];
}): string | undefined;
export declare function hasMatchingTargetDashboardAttributeFilterDisplayForm(displayFormRef: ObjRef, targetDashboardAttributeFilters: IDashboardAttributeFilter[]): boolean;
export declare function hasMatchingTargetDashboardAttributeFilter(dashboardFilter: IDashboardAttributeFilter, sourceDashboardAttributeFilterConfigs: IDashboardAttributeFilterConfig[], targetDashboardAttributeFilters: IDashboardAttributeFilter[], targetDashboardAttributeFilterConfigs: IDashboardAttributeFilterConfig[], allCatalogDisplayFormsMap: ObjRefMap<IAttributeDisplayFormMetadataObject>): boolean;
export declare function hasMatchingTargetDashboardDateFilter(datasetRef: ObjRef, targetDashboardFilters: FilterContextItem[]): boolean;
export declare function isDateIntersectionAttribute(displayFormRef: ObjRef, allCatalogDateAttributeDisplayForms: Array<{
    ref: ObjRef;
    title?: string;
}>): boolean;
/**
 * Reason why a filter cannot be transferred to the target dashboard.
 * - "transferable" — filter can be transferred
 * - "notFound" — no matching filter exists on the target dashboard
 * - "notCompatible" — matching filter exists but selection type config doesn't allow the type migration
 */
export type FilterTransferResult = "transferable" | "notFound" | "notCompatible";
/**
 * Checks if a list-type dashboard attribute filter can be transferred to the target dashboard,
 * considering both list and text filters on the target, and selection type config.
 */
export declare function canTransferDashboardAttributeFilter(sourceFilter: IDashboardAttributeFilter, sourceDashboardAttributeFilterConfigs: IDashboardAttributeFilterConfig[], targetDashboardAttributeFilters: IDashboardAttributeFilter[], targetDashboardAttributeFilterConfigs: IDashboardAttributeFilterConfig[], targetDashboardTextAttributeFilters: DashboardTextAttributeFilter[], allCatalogDisplayFormsMap: ObjRefMap<IAttributeDisplayFormMetadataObject>): FilterTransferResult;
/**
 * Checks if a text-type dashboard attribute filter can be transferred to the target dashboard,
 * considering both text and list filters on the target, and selection type config.
 */
export declare function canTransferTextAttributeFilter(sourceFilter: DashboardTextAttributeFilter, targetDashboardAttributeFilters: IDashboardAttributeFilter[], targetDashboardAttributeFilterConfigs: IDashboardAttributeFilterConfig[], targetDashboardTextAttributeFilters: DashboardTextAttributeFilter[]): FilterTransferResult;
/**
 * Checks if a source insight/measure attribute filter (by displayForm) can be transferred,
 * considering both list and text filters on the target, and selection type config.
 * Used for source insight filters and source measure filters where we only have a displayForm.
 *
 * @param displayFormRef - the displayForm of the source filter
 * @param isSourceTextFilter - whether the source filter is a text type (arbitrary/match)
 * @param targetDashboardAttributeFilters - list filters on the target dashboard
 * @param targetDashboardAttributeFilterConfigs - attribute filter configs on the target dashboard
 * @param targetDashboardTextAttributeFilters - text filters on the target dashboard
 */
export declare function canTransferAttributeFilterByDisplayForm(displayFormRef: ObjRef, isSourceTextFilter: boolean, targetDashboardAttributeFilters: IDashboardAttributeFilter[], targetDashboardAttributeFilterConfigs: IDashboardAttributeFilterConfig[], targetDashboardTextAttributeFilters: DashboardTextAttributeFilter[]): FilterTransferResult;
//# sourceMappingURL=drillFiltersConfigUtils.d.ts.map