import { eventName, IAliasPool } from '../io.js'
import type { destination, IDestination } from '../DestinationConrtoller/DestinationConrtoller.js'
import type { finalData } from '../DataManager/DataManager.js'
import { EventHandler, EventManager } from '../EventManager/EventManager.js'
import { List } from '../SocketList/List.js'
export declare interface INamespace {
  control(destinations: destination | Array<destination>): IDestination
  emit(event: eventName, ...data: finalData[]): void
  on(event: eventName, callback: EventHandler): void
  get Aliases(): IAliasPool
  get Sockets(): List<string>
  get Events(): EventManager
  get EventsKeys(): Array<string>
}
export declare class Namespace implements INamespace {
  private _name
  private _events
  private _aliases
  private _sockets
  constructor(_name: string, _events: EventManager)
  get name(): string
  control(destinations: string | string[]): IDestination
  emit(event: string, ...data: finalData[]): void
  on(event: string, callback: EventHandler): void
  get Aliases(): IAliasPool
  get Sockets(): List<string>
  get EventsKeys(): string[]
  get Events(): EventManager
}
//# sourceMappingURL=Namespace.d.ts.map
