import { TreeNodeKeyType } from '../types'; import TreeNode from './tree-node'; type NodeGeneralListenerType = (node: TreeNode) => void; export type ListenerType = IEventNames[T]; export interface IEventNames { 'set-data': () => void; 'visible-data-change': () => void; 'render-data-change': () => void; expand: NodeGeneralListenerType; select: NodeGeneralListenerType; unselect: NodeGeneralListenerType; 'selected-change': (node: TreeNode | null, key: TreeNodeKeyType | null) => void; check: NodeGeneralListenerType; uncheck: NodeGeneralListenerType; 'checked-change': (nodes: TreeNode[], keys: TreeNodeKeyType[]) => void; } export default class TreeEventTarget { /** 事件 listeners */ private listenersMap; on(eventName: T, listener: ListenerType | Array>): void; off(eventName: T, listener?: ListenerType): void; emit(eventName: T, ...args: Parameters): void; disposeListeners(): void; } export {};