export type EventMap = { [name: string]: (...args: any[]) => void | boolean; }; declare class Subscribe { hasListener(name: keyof T): boolean; on(name: K, callback: (...args: Parameters) => ReturnType, once?: boolean): () => void; once(name: K, callback: (...args: Parameters) => ReturnType): () => void; off(name?: K, callback?: (...args: Parameters) => ReturnType): void; emit(name: K, ...data: Parameters): boolean; } export declare namespace SubscribeMixinType { interface hasListener { (name: keyof T): boolean; } interface on { (name: K, callback: (...args: Parameters) => ReturnType, once?: boolean): () => void; } interface once { (name: K, callback: (...args: Parameters) => ReturnType): () => void; } interface off { (names?: K | K[], callback?: (...args: any[]) => any): void; } interface emit { (name: K, ...data: Parameters): boolean; } } export { Subscribe };