import { type AsyncBoolean } from '../function'; import type { EventArgs, EventNames, Handler, NamesWithArrayArgs, OptionalNormalNames, OtherNames, RequiredNormalNames, UnknownNames } from './types'; export declare class Events { private listeners; on>(name: Name, handler: Handler, context?: any): this; on>(name: Name, handler: Handler, context?: any): this; once>(name: Name, handler: Handler, context?: any): this; once>(name: Name, handler: Handler, context?: any): this; off(): this; off(name: null, handler: Handler): this; off(name: null, handler: null, context: any): this; off>(name: Name, handler?: Handler, context?: any): this; off>(name: Name, handler?: Handler, context?: any): this; trigger>(name: Name): AsyncBoolean; trigger>(name: Name, args: Args[Name]): AsyncBoolean; trigger>(name: Name, ...args: Args[Name]): AsyncBoolean; trigger>(name: Name, args?: Args[Name]): AsyncBoolean; trigger>(name: Name, ...args: Args[Name]): AsyncBoolean; trigger>(name: Name, ...args: any[]): AsyncBoolean; /** * Triggers event with specified event name. Unknown names * will cause a typescript type error. */ protected emit>(name: Name): AsyncBoolean; protected emit>(name: Name, args: Args[Name]): AsyncBoolean; protected emit>(name: Name, ...args: Args[Name]): AsyncBoolean; protected emit>(name: Name, args?: Args[Name]): AsyncBoolean; protected emit>(name: Name, ...args: Args[Name]): AsyncBoolean; }