import { FederatedPointerEvent as GEvent } from '@antv/g';
import { type PartDrillDownDataCache, type S2Options } from '../../common';
import type { Node } from '../../facet/layout/node';
import type { SpreadSheet } from '../../sheet-type';
import type { PartDrillDown, PartDrillDownInfo } from '../interface';
export interface DrillDownParams {
    rows: string[];
    drillFields: string[];
    spreadsheet: SpreadSheet;
    drillItemsNum?: number;
    fetchData?: (meta: Node, drillFields: string[]) => Promise<PartDrillDownInfo>;
}
export type ActionIconCallbackParams = {
    sheetInstance: SpreadSheet;
    cacheDrillFields?: string[];
    disabledFields?: string[];
    event?: GEvent;
};
/** 下钻 icon 点击回调 */
export type ActionIconCallback = (params: ActionIconCallbackParams) => void;
export interface ActionIconParams {
    meta: Node;
    event?: GEvent;
    callback: ActionIconCallback;
}
/**
 * 获取下钻缓存
 * @param spreadsheet
 * @param meta
 */
export declare const getDrillDownCache: (spreadsheet: SpreadSheet, meta: Node) => {
    drillDownDataCache: PartDrillDownDataCache[];
    drillDownCurrentCache: PartDrillDownDataCache | undefined;
};
/**
 * 点击下钻Icon的响应
 * @param params
 */
export declare const handleActionIconClick: (params: ActionIconParams) => void;
/**
 * 下钻 icon 默认展示规则
 * @param meta 节点
 * @returns
 */
export declare const defaultPartDrillDownDisplayCondition: (meta: Node) => boolean;
/**
 * 构造下钻功能的 s2 options
 * @param options 原始 options
 * @param partDrillDown 下钻参数
 * @param callback 下钻点击事件
 * @returns 新 options
 */
export declare const buildDrillDownOptions: <T extends Omit<S2Options<import("../../common").TooltipContentType, import("../../common").Pagination, import("../../common").BaseTooltipOperatorMenuOptions>, "tooltip">>(options: T, partDrillDown: PartDrillDown, callback: ActionIconCallback) => T;
export declare const handleDrillDown: (params: DrillDownParams) => void;
