import { type TFunction } from '@sisense/sdk-common';
import { Attribute, Column, MembersFilter } from '@sisense/sdk-data';
import { ChartDataPoint, DataPoint, DrilldownSelection, StyledColumn } from '../../../types.js';
import { Hierarchy } from '../hierarchy-model';
type UseDrilldownCoreParams = {
    drilldownPaths?: (Attribute | Hierarchy)[];
    initialDimension: Column | StyledColumn;
    initialDrilldownSelections?: DrilldownSelection[];
    onDrilldownSelectionsChange?: (selections: DrilldownSelection[]) => void;
};
export declare const useDrilldownCore: (params: UseDrilldownCoreParams) => {
    drilldownSelections: DrilldownSelection[];
    availableDrilldownPaths: (Attribute | Hierarchy)[];
    drilldownFilters: MembersFilter[];
    drilldownFiltersDisplayValues: string[][];
    drilldownDimension: Attribute;
    selectDrilldown: (points: DataPoint[], nextDimension: Attribute, hierarchy?: Hierarchy) => void;
    sliceDrilldownSelections: (i: number) => void;
    clearDrilldownSelections: () => void;
};
/**
 * Updates the drilldown selections based on the current selections, the next data points,
 * and the specified hierarchy level.
 *
 * @internal
 */
export declare const updateDrilldownSelections: (currentSelections: DrilldownSelection[], points: DataPoint[], nextDimension: Attribute, hierarchy?: Hierarchy) => DrilldownSelection[];
/**
 * @internal
 */
export declare const processDrilldownSelections: (drilldownSelections: DrilldownSelection[], initialDimension: Column | StyledColumn, translate: TFunction) => {
    drilldownFilters: MembersFilter[];
    drilldownFiltersDisplayValues: string[][];
    drilldownDimension: Attribute;
};
export declare function getDisplayMemberNameFromDataPoint(point: ChartDataPoint): string;
export declare function getMemberNameFromDataPoint(point: ChartDataPoint): string;
export {};
