import { FunctionExt } from '../function'; import { Handler, EventArgs, EventNames, OtherNames, UnknownNames, OptionalNormalNames, RequiredNormalNames, NamesWithArrayArgs } 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): FunctionExt.AsyncBoolean; trigger>(name: Name, args: Args[Name]): FunctionExt.AsyncBoolean; trigger>(name: Name, ...args: Args[Name]): FunctionExt.AsyncBoolean; trigger>(name: Name, args?: Args[Name]): FunctionExt.AsyncBoolean; trigger>(name: Name, ...args: Args[Name]): FunctionExt.AsyncBoolean; trigger>(name: Name, ...args: any[]): FunctionExt.AsyncBoolean; /** * Triggers event with specified event name. Unknown names * will cause a typescript type error. */ protected emit>(name: Name): FunctionExt.AsyncBoolean; protected emit>(name: Name, args: Args[Name]): FunctionExt.AsyncBoolean; protected emit>(name: Name, ...args: Args[Name]): FunctionExt.AsyncBoolean; protected emit>(name: Name, args?: Args[Name]): FunctionExt.AsyncBoolean; protected emit>(name: Name, ...args: Args[Name]): FunctionExt.AsyncBoolean; }