import { type FilterContextItem, type IDashboardAttributeFilterConfig, type IDashboardDateFilterConfig, type IDashboardDateFilterConfigItem } from "@gooddata/sdk-model";
/**
 * Describes validation errors that can occur when merging dashboard filters.
 *
 * @internal
 */
export type FilterValidationErrorType = "cannot-apply-hidden" | "cannot-apply-readonly" | "cannot-apply-multi-to-single" | "cannot-apply-missing-filter" | "parent-filter-is-missing" | "cannot-apply-incompatible-selection-type";
/**
 * Result of filter validation containing the filter and the specific error.
 *
 * @internal
 */
export type ValidationResult = {
    filter: FilterContextItem;
    error: FilterValidationErrorType;
};
/**
 * Dashboard filter configuration for merging operations.
 *
 * @internal
 */
export interface IDashboardFilterMergeConfig {
    dateFilterConfig?: IDashboardDateFilterConfig;
    dateFilterConfigs?: IDashboardDateFilterConfigItem[];
    attributeFilterConfigs?: IDashboardAttributeFilterConfig[];
}
/**
 * Merges dashboard filters according to configuration rules.
 *
 * This function validates and merges dashboard filters from one context into another,
 * respecting filter configuration settings like read-only or hidden status.
 *
 * @param originalFilters - Original filters from the dashboard
 * @param filtersToMerge - Filters to be merged into the dashboard
 * @param config - Dashboard filter configuration
 * @returns Object containing merged filters and validation results
 * @internal
 */
export declare function mergeFilterContextFilters(originalFilters: FilterContextItem[], filtersToMerge: FilterContextItem[], config: IDashboardFilterMergeConfig): {
    mergedFilters: FilterContextItem[];
    validationResults: ValidationResult[];
};
//# sourceMappingURL=dashboardFilterContextValidation.d.ts.map