import { type IntlShape } from "react-intl";
import { type ICatalogMeasure, type IDashboardMeasureValueFilter, type IMeasureValueFilter, type ISeparators, type MeasureValueFilterCondition, type ObjRef } from "@gooddata/sdk-model";
import { type IDimensionalityItem } from "@gooddata/sdk-ui-filters";
/**
 * Normalizes the output of the SDK `<MeasureValueFilter />` onApply callback into a single
 * `conditions` array. The SDK can return either `condition` (single comparison/range) or
 * `conditions` (multi-condition OR); the dashboard model only uses `conditions`. Returns
 * undefined when the filter is "All" (no condition selected).
 *
 * @internal
 */
export declare function normalizeMeasureValueFilterConditions(updated: IMeasureValueFilter | null): MeasureValueFilterCondition[] | undefined;
/**
 * Derived data shared by every dashboard MVF host (filter bar, automation/scheduling dialog,
 * any future location). Resolves the catalog metric, computes title/format/percentage/conditions,
 * builds the execution-level MVF shape the SDK dropdown expects, and produces the condition
 * label shown on the chip.
 *
 * @internal
 */
export interface IDashboardMeasureValueFilterData {
    measure: ObjRef;
    localIdentifier: string;
    /** Custom title from the filter, if any. */
    customTitle: string | undefined;
    /** Catalog metric the filter references; undefined if not in the catalog. */
    catalogMetric: ICatalogMeasure | undefined;
    /** True when the catalog has loaded and the referenced metric no longer exists in the workspace. */
    isMissingMetric: boolean;
    /** Title fallback when no custom title is set. */
    defaultMetricTitle: string;
    /** Effective title — custom title or catalog title or stringified objRef. */
    metricTitle: string;
    /** Catalog metric format pattern, if any. */
    format: string | undefined;
    /** Whether the format expresses a percentage. */
    usePercentage: boolean;
    /** Conditions from the (possibly working) filter the UI should reflect. */
    conditions: MeasureValueFilterCondition[] | undefined;
    /** Dashboard-level dimensionality refs from the persisted filter. */
    dimensionality: ObjRef[] | undefined;
    /** Dashboard-level dimensionality items selected in the configuration panel. */
    dimensionalityItems: IDimensionalityItem[];
    /** Catalog dimensionality candidates shown in the configuration panel picker. */
    catalogDimensionality: IDimensionalityItem[];
    /** Loader for catalog dimensionality items shown in the configuration panel picker. */
    loadCatalogDimensionality: (dimensionality: ObjRef[]) => Promise<IDimensionalityItem[]>;
    /** Human-readable condition summary shown on the chip ("> 100 OR ≥ 50%"). */
    conditionLabel: string;
    /** Execution-level MVF that the SDK <MeasureValueFilter /> takes as `filter`. */
    dropdownFilter: IMeasureValueFilter;
    separators: ISeparators;
    locale: string;
    intl: IntlShape;
}
/**
 * Hook that resolves the shared data needed to render a dashboard MVF dropdown.
 *
 * The host owns the choice of which filter to reflect in the UI: the persisted filter
 * (`filter`), or the working/staged filter when "Apply together" mode is active. Pass
 * the chosen one as `filterToDisplay`; if omitted, `filter` itself is used.
 *
 * @internal
 */
export declare function useDashboardMeasureValueFilterData(filter: IDashboardMeasureValueFilter, filterToDisplay?: IDashboardMeasureValueFilter): IDashboardMeasureValueFilterData;
/**
 * Props that every dashboard MVF host passes to the SDK `<MeasureValueFilter />` unchanged.
 * Host-specific bits — `DropdownButtonComponent`, `onApply`, `onChange`, `onCancel`,
 * `withoutApply`, `BodyComponent`, `DropdownActionsComponent`, `autoOpen` — are added
 * by the host on top of this bundle.
 *
 * @internal
 */
export interface ISharedDashboardMvfProps {
    filter: IMeasureValueFilter;
    measureIdentifier: string;
    buttonTitle: string;
    measureTitle: string;
    usePercentage: boolean;
    format: string | undefined;
    useShortFormat: true;
    displayTreatNullAsZeroOption: true;
    separators: ISeparators;
    locale: string;
    enableOperatorSelection: true;
    enableMultipleConditions: true;
    isDimensionalityEnabled: false;
    isFilterSummaryEnabled: true;
    showSimplifiedSummary: true;
    isHeaderEnabled: true;
}
/**
 * Build the shared `<MeasureValueFilter />` prop bundle from the data hook output.
 * Spread this into the SDK component and add host-specific props after.
 *
 * @internal
 */
export declare function getSharedDashboardMvfProps(data: IDashboardMeasureValueFilterData): ISharedDashboardMvfProps;
//# sourceMappingURL=useDashboardMeasureValueFilterData.d.ts.map