export declare type Listener = (...p: any[]) => void; export declare type Target = { on: (type: string, func: Listener, ctx: any) => Target; off: (type?: string, func?: Listener) => Target; emit: (type: string, ...args: any[]) => Target; }; export declare function Events(target: T): T & Target;