import { type SagaIterator } from "redux-saga";
import { type DashboardTextAttributeFilter, type IAttributeDisplayFormMetadataObject, type IDrillToCustomUrl as IDrillToCustomUrlModel, type MeasureValueFilterCondition, type ObjRef, type TextAttributeFilter } from "@gooddata/sdk-model";
import { type IDrillEvent, type IDrillEventIntersectionElement } from "@gooddata/sdk-ui";
import { type IDrillToCustomUrl } from "../../commands/drill.js";
import { type DashboardContext } from "../../types/commonTypes.js";
interface IDrillToUrlPlaceholderReplacement {
    toBeReplaced: string;
    replacement: string | undefined;
    replaceGlobally?: boolean;
}
interface IDrillToUrlElement {
    identifier: string;
    elementTitle: string | null;
}
export declare function loadElementTitle(dfRef: ObjRef, dfIdentifier: string, attrElementUri: string, ctx: DashboardContext): SagaIterator<IDrillToUrlElement>;
export declare function loadSecondaryElementTitles(dfRef: ObjRef, attrElementValues: (string | null)[], ctx: DashboardContext): SagaIterator<Array<string | null>>;
/**
 * @internal
 */
export declare function findDrillIntersectionAttributeHeaderItem(drillIntersectionElements: IDrillEventIntersectionElement[], displayForm: IAttributeDisplayFormMetadataObject): import("@gooddata/sdk-model").IResultAttributeHeaderItem | undefined;
export declare function splitDFToLoadingAndMapping(attributesDisplayForms: IAttributeDisplayFormMetadataObject[], ctx: DashboardContext): SagaIterator<{
    displayFormsWithKnownValues: IAttributeDisplayFormMetadataObject[];
    displayFormForValueLoad: IAttributeDisplayFormMetadataObject[];
}>;
export declare function loadAttributeElementsForDrillIntersection(drillIntersectionElements: IDrillEventIntersectionElement[], attributesDisplayForms: IAttributeDisplayFormMetadataObject[], ctx: DashboardContext): SagaIterator<IDrillToUrlElement[]>;
export declare function getAttributeDisplayForms(projectId: string, objRefs: ObjRef[], ctx: DashboardContext): Promise<IAttributeDisplayFormMetadataObject[]>;
export declare function getAttributeIdentifiersReplacements(url: string, drillIntersectionElements: IDrillEventIntersectionElement[], ctx: DashboardContext): SagaIterator<IDrillToUrlPlaceholderReplacement[]>;
export declare function getDashboardAttributeFilterReplacements(url: string, ctx: DashboardContext): SagaIterator<IDrillToUrlPlaceholderReplacement[]>;
export declare function getDashboardMeasureValueFilterReplacements(url: string): SagaIterator<IDrillToUrlPlaceholderReplacement[]>;
export declare function getInsightMeasureValueFilterReplacements(url: string, widgetRef: ObjRef): SagaIterator<IDrillToUrlPlaceholderReplacement[]>;
export declare function getInsightAttributeFilterReplacements(url: string, widgetRef: ObjRef): SagaIterator<IDrillToUrlPlaceholderReplacement[]>;
export declare function getInsightIdentifiersReplacements(customUrl: string, widgetRef: ObjRef, ctx: DashboardContext): SagaIterator<IDrillToUrlPlaceholderReplacement[]>;
export declare function resolveDrillToCustomUrl(drillConfig: IDrillToCustomUrlModel, widgetRef: ObjRef, event: IDrillEvent, ctx: DashboardContext, cmd: IDrillToCustomUrl): SagaIterator<string>;
/**
 * @internal
 */
export declare function stringifyTextFilterSelection(filter: DashboardTextAttributeFilter | TextAttributeFilter): string;
/**
 * @internal
 */
export declare function stringifyMeasureValueFilterCondition(conditions: MeasureValueFilterCondition[] | undefined): string;
export {};
//# sourceMappingURL=resolveDrillToCustomUrl.d.ts.map