import { type TFunction } from '@sisense/sdk-common';
import { Attribute, Column } from '@sisense/sdk-data';
import { OpenMenuFn } from '../../../infra/contexts/menu-provider/types';
import { DataPoint, DrilldownSelection, MenuItemSection, MenuPosition, StyledColumn } from '../../../types.js';
import { Hierarchy } from '../hierarchy-model';
type UseDrilldownParams = {
    initialDimension: Column | StyledColumn;
    initialDrilldownSelections?: DrilldownSelection[];
    /**
     * todo: make it optional when we will have a public `MenuProvider`.
     * Without provided function, it should open internal menu with the help of `useMenu` hook
     */
    openMenu: OpenMenuFn;
    onDrilldownSelectionsChange?: (selections: DrilldownSelection[]) => void;
};
export declare const useDrilldown: ({ initialDimension, initialDrilldownSelections, openMenu, onDrilldownSelectionsChange, }: UseDrilldownParams) => {
    drilldownDimension: Attribute;
    drilldownSelections: DrilldownSelection[];
    drilldownFilters: import("@sisense/sdk-data").MembersFilter[];
    breadcrumbs: import("react/jsx-runtime").JSX.Element;
    openDrilldownMenu: (position: MenuPosition, points: DataPoint[], availableDrilldownPaths?: (Attribute | Hierarchy)[], onSelect?: ((nextDimension: Attribute, hierarchy?: Hierarchy) => void) | undefined) => void;
};
/** @internal */
export declare function getSelectionTitleMenuItem(points: DataPoint[], drilldownDimension: Attribute): MenuItemSection;
/** @internal */
export declare function getDrilldownMenuItems(availableDrilldownPaths: (Attribute | Hierarchy)[], drilldownDimension: Attribute, selectFn: (nextDimension: Attribute, hierarchy?: Hierarchy) => void, translate: TFunction): MenuItemSection | null;
export {};
