import { AnyWrapper, WrapperConstructor, Constructor, AnyWrapperClass } from '../Wrapper.js';
export declare type ActionData = {
    [name: string]: any;
};
export declare type ActionHandler<W extends AnyWrapper> = (node: W, data?: ActionData) => void;
export declare type ActionPair<W extends AnyWrapper> = [ActionHandler<W>, ActionData];
export declare type ActionMap<W extends AnyWrapper> = Map<string, ActionPair<W>>;
export declare type ActionDef<W extends AnyWrapper> = [string, [ActionHandler<W>, ActionData]];
export declare type EventHandler = (event: Event) => void;
export declare const TooltipData: {
    dx: string;
    dy: string;
    postDelay: number;
    clearDelay: number;
    hoverTimer: Map<any, number>;
    clearTimer: Map<any, number>;
    stopTimers: (node: any, data: ActionData) => void;
};
export interface CommonMaction<W extends AnyWrapper> extends AnyWrapper {
    action: ActionHandler<W>;
    data: ActionData;
    dx: number;
    dy: number;
    readonly selected: W;
}
export interface CommonMactionClass<W extends AnyWrapper> extends AnyWrapperClass {
    actions: ActionMap<W>;
}
export declare type MactionConstructor<W extends AnyWrapper> = Constructor<CommonMaction<W>>;
export declare function CommonMactionMixin<W extends AnyWrapper, T extends WrapperConstructor>(Base: T): MactionConstructor<W> & T;