UNPKG

vban

Version:
37 lines (36 loc) 1.47 kB
import { BindOptions, RemoteInfo, Socket } from 'node:dgram'; import type { AddressInfo } from 'node:net'; import type { Buffer } from 'node:buffer'; import { EventEmitter } from 'node:events'; import { VBANPacket, VBANPacketTypes } from './packets/index.js'; import { IVBANServerOptions } from './IVBANServerOptions.js'; export interface VBANServerEvents { listening: () => void; error: (err: Error) => void; close: () => void; message: (packet: VBANPacketTypes, sender: RemoteInfo, message: Buffer) => void; } export declare interface VBANServer { on<U extends keyof VBANServerEvents>(event: U, listener: VBANServerEvents[U]): this; emit<U extends keyof VBANServerEvents>(event: U, ...args: Parameters<VBANServerEvents[U]>): boolean; } export declare class VBANServer extends EventEmitter { readonly UDPServer: Socket; private readonly options; private readonly frameCounter; isListening: boolean; constructor(options?: IVBANServerOptions); address(): AddressInfo; bind(port?: number, address?: string): Promise<void>; bind(port?: number): Promise<void>; bind(): Promise<void>; bind(options: BindOptions): Promise<void>; private getFrameCounter; send(packet: VBANPacket, port: number, address: string): Promise<void>; sendPing(receiver: { address: string; port: number; }, isReply?: boolean): Promise<void>; private readonly messageHandler; close(): Promise<void>; }