import ExtensionAPI from '../../core/ExtensionAPI.js';
import { ZRElementEvent } from '../../util/types.js';
declare type DispatchActionMethod = ExtensionAPI['dispatchAction'];
export declare type Handler = (currTrigger: 'click' | 'mousemove' | 'leave' | 'mouseup' | 'mousedown', event: ZRElementEvent, dispatchAction: DispatchActionMethod) => void;
interface ShowTipPayload {
    type: 'showTip';
    dispatchAction: DispatchActionMethod;
}
interface HideTipPayload {
    type: 'hideTip';
    dispatchAction: DispatchActionMethod;
}
interface Pendings {
    showTip: ShowTipPayload[];
    hideTip: HideTipPayload[];
}
/**
 * @param {string} key
 * @param {module:echarts/ExtensionAPI} api
 * @param {Function} handler
 *      param: {string} currTrigger
 *      param: {Array.<number>} point
 */
export declare function register(key: string, api: ExtensionAPI, handler?: Handler): void;
export declare function makeDispatchAction(api: ExtensionAPI): {
    dispatchAction: (payload: ShowTipPayload | HideTipPayload) => void;
    pendings: Pendings;
};
export declare function unregister(key: string, api: ExtensionAPI): void;
export {};
