import { type IntlShape } from "react-intl";
import { type IBucket, type IInsightDefinition, type IMeasure, type ITotal } from "@gooddata/sdk-model";
import { type OverTimeComparisonType } from "@gooddata/sdk-ui";
import { type IAttributeFilter, type IBucketFilter, type IBucketItem, type IBucketOfFun, type IDateFilter, type IExtendedReferencePoint, type IFilters, type IFiltersBucketItem, type IMeasureValueFilter, type IRankingFilter, type IUiConfig, type IVisualizationProperties } from "../interfaces/Visualization.js";
export declare function isDateFilter(filter: IBucketFilter | undefined): filter is IDateFilter;
export declare function isFiltersBucketItem(filter: IFiltersBucketItem): filter is IFiltersBucketItem;
export declare function isAttributeFilter(filter: IBucketFilter | undefined): filter is IAttributeFilter;
export declare function isMeasureValueFilter(filter: IBucketFilter | undefined): filter is IMeasureValueFilter;
export declare function isActiveMeasureValueFilter(filter: IBucketFilter): boolean;
export declare function isRankingFilter(filter: IBucketFilter | undefined): filter is IRankingFilter;
export declare function sanitizeFilters(newReferencePoint: IExtendedReferencePoint, enableImprovedAdFilters: boolean | undefined, oldReferencePoint: Pick<IExtendedReferencePoint, "buckets">): IExtendedReferencePoint;
export declare function isDerivedBucketItem(measureItem: IBucketItem): boolean;
export declare function isArithmeticBucketItem(bucketItem: IBucketItem): bucketItem is IBucketItem & {
    operandLocalIdentifiers: string[];
};
/**
 * Get array of unique over time comparison types used in ancestors of the provided arithmetic measure.
 *
 * @param measure - the (possibly) arithmetic measure
 * @param buckets - all buckets
 * @returns empty array if there are no derived measures in the arithmetic measure ancestors, empty array if provided
 * measure is not arithmetic, array of unique {@link OverTimeComparisonType} of derived ancestor measures found in arithmetic
 * measure tree.
 */
export declare function getDerivedTypesFromArithmeticMeasure(measure: IBucketItem, buckets: IBucketOfFun[]): OverTimeComparisonType[];
export declare function filterOutDerivedMeasures(measures: IBucketItem[]): IBucketItem[];
export declare function filterOutArithmeticMeasuresFromDerived(measures: IBucketItem[], buckets: IBucketOfFun[]): IBucketItem[];
export declare function keepOnlyMasterAndDerivedMeasuresOfType(measures: IBucketItem[], derivedType: OverTimeComparisonType): IBucketItem[];
export declare function filterOutIncompatibleArithmeticMeasures(measures: IBucketItem[], buckets: IBucketOfFun[], derivedOfTypeToKeep: OverTimeComparisonType): IBucketItem[];
export declare function isDateBucketItem(bucketItem: IBucketItem): boolean;
export declare const isNotDateBucketItem: (bucketItem: IBucketItem) => boolean;
export declare function getDateFilter(filtersBucket: IFilters): IDateFilter | null;
export declare function getComparisonTypeFromFilters(filtersBucket: IFilters): OverTimeComparisonType;
export declare function setBucketTitles(referencePoint: IExtendedReferencePoint, visualizationType: string, intl?: IntlShape): IUiConfig | null | undefined;
export declare function generateBucketTitleId(localIdentifier: string, visualizationType: string): string | undefined;
export declare function getItemsCount(buckets: IBucketOfFun[], localIdentifier: string): number;
export declare function getBucketItems(buckets: IBucketOfFun[], localIdentifier: string): IBucketItem[];
export declare function getItemsFromBuckets(buckets: IBucketOfFun[], localIdentifiers: string[], types?: string[]): IBucketItem[];
export declare function getBucketItemsByType(buckets: IBucketOfFun[], localIdentifier: string, types: string[]): IBucketItem[];
export declare function getPreferredBucketItems(buckets: IBucketOfFun[], preference: string[], type: string[]): IBucketItem[];
export declare function getAllItemsByType(buckets: IBucketOfFun[], types: string[]): IBucketItem[];
export declare function removeDuplicateBucketItems(buckets: IBucketOfFun[]): IBucketOfFun[];
export declare function getTotalsFromBucket(buckets: IBucketOfFun[], bucketName: string): ITotal[];
export declare function getMeasuresFromMdObject(insight: IInsightDefinition | undefined): IMeasure[];
export declare function getAllMeasures(buckets: IBucketOfFun[]): IBucketItem[];
export declare function getFirstValidMeasure(buckets: IBucketOfFun[]): IBucketItem;
export declare function getFirstAttribute(buckets: IBucketOfFun[]): IBucketItem;
export declare function getMeasureItems(buckets: IBucketOfFun[]): IBucketItem[];
export declare function getBucketItemsWithExcludeByType(buckets: IBucketOfFun[], excludedBucket: string[], type: string[]): IBucketItem[];
export declare function getStackItems(buckets: IBucketOfFun[], itemTypes?: string[]): IBucketItem[];
export declare function getAttributeToItems(buckets: IBucketOfFun[]): IBucketItem[];
export declare function getAttributeFromItems(buckets: IBucketOfFun[]): IBucketItem[];
export declare function getViewItems(buckets: IBucketOfFun[], itemTypes?: string[]): IBucketItem[];
export declare function getAttributeItems(buckets: IBucketOfFun[]): IBucketItem[];
export declare function getAttributeItemsWithoutStacks(buckets: IBucketOfFun[], itemTypes?: string[]): IBucketItem[];
export declare function getAllCategoriesAttributeItems(buckets: IBucketOfFun[]): IBucketItem[];
export declare function getAllAttributeItems(buckets: IBucketOfFun[]): IBucketItem[];
export declare function getAllAttributeItemsWithPreference(buckets: IBucketOfFun[], preference: string[]): IBucketItem[];
export declare function getDateItems(buckets: IBucketOfFun[]): IBucketItem[];
export declare function getDateItemsWithMultipleDates(buckets: IBucketOfFun[]): IBucketItem[];
export declare function getFistDateItemWithMultipleDates(buckets: IBucketOfFun[]): IBucketItem | undefined;
export declare function getFistDateItem(buckets: IBucketOfFun[]): IBucketItem | undefined;
export declare function getMainDateItem(dateItems: IBucketItem[]): IBucketItem;
export declare function applyUiConfig(referencePoint: IExtendedReferencePoint): IExtendedReferencePoint;
export declare function hasBucket(buckets: IBucketOfFun[], localIdentifier: string): boolean;
export declare function findBucket(buckets: IBucketOfFun[], localIdentifier: string): IBucketOfFun | undefined;
export declare function getBucketsByNames(buckets: IBucketOfFun[], names: string[]): IBucketOfFun[];
export declare function getFirstMasterWithDerived(measureItems: IBucketItem[]): IBucketItem[];
export declare function removeAllArithmeticMeasuresFromDerived(extendedReferencePoint: IExtendedReferencePoint): IExtendedReferencePoint;
export declare function removeAllDerivedMeasures(extendedReferencePoint: IExtendedReferencePoint): IExtendedReferencePoint;
export declare function findMasterBucketItem(derivedBucketItem: IBucketItem, bucketItems: IBucketItem[]): IBucketItem | undefined;
export declare function findMasterBucketItems(bucketItems: IBucketItem[]): IBucketItem[];
export declare function findDerivedBucketItems(masterBucketItem: IBucketItem, bucketItems: IBucketItem[]): IBucketItem[];
export declare function findDerivedBucketItem(masterBucketItem: IBucketItem, bucketItems: IBucketItem[]): IBucketItem | undefined;
export declare function hasDerivedBucketItems(masterBucketItem: IBucketItem, buckets: IBucketOfFun[]): boolean;
export declare function getFilteredMeasuresForStackedCharts(buckets: IBucketOfFun[]): IBucketItem[];
export declare function getFilteredMeasuresForStackedChartsWithStyleControlMetricSupport(buckets: IBucketOfFun[]): IBucketItem[];
export declare function noRowsAndHasOneMeasure(buckets: IBucket[]): boolean;
export declare function noColumnsAndHasOneMeasure(buckets: IBucket[]): boolean;
export declare function limitNumberOfMeasuresInBuckets(buckets: IBucketOfFun[], measuresLimitCount: number, tryToSelectDerivedWithMaster?: boolean, filterMeasureFn?: (m: IBucketItem) => boolean): IBucketOfFun[];
export declare function isShowOnSecondaryAxis(item: IBucketItem): boolean;
export declare function setMeasuresShowOnSecondaryAxis(items: IBucketItem[], value: boolean | null): IBucketItem[];
export declare function removeShowOnSecondaryAxis(items: IBucketItem[]): IBucketItem[];
export declare function getAllMeasuresShowOnSecondaryAxis(buckets: IBucketOfFun[]): IBucketItem[];
export declare function getItemsLocalIdentifiers(items: IBucketItem[]): string[];
export interface IMeasureBucketItemsLimit {
    localIdentifier: string;
    itemsLimit: number;
}
export declare const transformMeasureBuckets: (measureBucketItemsLimits: IMeasureBucketItemsLimit[], buckets: IBucketOfFun[]) => IBucketOfFun[];
export declare const hasSameDateDimension: (dateItem: IBucketItem, referenceDateItem: IBucketItem) => boolean;
export declare const removeDivergentDateItems: (viewItems: IBucketItem[], mainDateItem: IBucketItem) => IBucketItem[];
export declare const isComparisonAvailable: (buckets: IBucketOfFun[], filters: IFilters) => boolean;
export declare const getMainRowAttribute: (buckets: IBucketOfFun[]) => IBucketItem | undefined;
export declare const cloneBucketItem: (item: IBucketItem) => IBucketItem;
/**
 * The function returns measures that should not have the chart fill (outline and pattern) applied.
 * @param insight - the insight to get the measures from
 * @param properties - the properties of the insight
 */
export declare function getChartFillIgnoredMeasureIdsFromMdObject(insight: IInsightDefinition | undefined, properties: IVisualizationProperties | undefined): string[];
//# sourceMappingURL=bucketHelper.d.ts.map