import type { ApiInterfaceEvents } from '../types/index.js';
export declare class Events {
#private;
protected emit(type: ApiInterfaceEvents, ...args: unknown[]): boolean;
/**
* @description Attach an eventemitter handler to listen to a specific event
*
* @param type The type of event to listen to. Available events are `connected`, `disconnected`, `ready` and `error`
* @param handler The callback to be called when the event fires. Depending on the event type, it could fire with additional arguments.
*
* @example
*
*
* ```javascript
* api.on('connected', (): void => {
* console.log('API has been connected to the endpoint');
* });
*
* api.on('disconnected', (): void => {
* console.log('API has been disconnected from the endpoint');
* });
* ```
*/
on(type: ApiInterfaceEvents, handler: (...args: any[]) => any): this;
/**
* @description Remove the given eventemitter handler
*
* @param type The type of event the callback was attached to. Available events are `connected`, `disconnected`, `ready` and `error`
* @param handler The callback to unregister.
*
* @example
*
*
* ```javascript
* const handler = (): void => {
* console.log('Connected !);
* };
*
* // Start listening
* api.on('connected', handler);
*
* // Stop listening
* api.off('connected', handler);
* ```
*/
off(type: ApiInterfaceEvents, handler: (...args: any[]) => any): this;
/**
* @description Attach an one-time eventemitter handler to listen to a specific event
*
* @param type The type of event to listen to. Available events are `connected`, `disconnected`, `ready` and `error`
* @param handler The callback to be called when the event fires. Depending on the event type, it could fire with additional arguments.
*
* @example
*
*
* ```javascript
* api.once('connected', (): void => {
* console.log('API has been connected to the endpoint');
* });
*
* api.once('disconnected', (): void => {
* console.log('API has been disconnected from the endpoint');
* });
* ```
*/
once(type: ApiInterfaceEvents, handler: (...args: any[]) => any): this;
}