Interface SharedUdpSocket
interface SharedUdpSocket {    addListener<T extends keyof SharedUdpSocketEvents>(        event: T,        fn: (            ...args: ArgumentMap<SharedUdpSocketEvents>[Extract<                T,                keyof SharedUdpSocketEvents,            >],        ) => void,        context?: any,    ): this;    bind(port: number, address?: string, callback?: () => void): void;    close(callback?: () => void): void;    emit<T extends keyof SharedUdpSocketEvents>(        event: T,        ...args: ArgumentMap<SharedUdpSocketEvents>[Extract<            T,            keyof SharedUdpSocketEvents,        >],    ): boolean;    eventNames(): (
keyof SharedUdpSocketEvents)
[];    listenerCount(event: keyof SharedUdpSocketEvents): number;    listeners<T extends keyof SharedUdpSocketEvents>(        event: T,    ): (        ...args: ArgumentMap<SharedUdpSocketEvents>[Extract<            T,            keyof SharedUdpSocketEvents,        >],    ) => void[];    off<T extends keyof SharedUdpSocketEvents>(        event: T,        fn?: (            ...args: ArgumentMap<SharedUdpSocketEvents>[Extract<                T,                keyof SharedUdpSocketEvents,            >],        ) => void,        context?: any,        once?: boolean,    ): this;    on<T extends keyof SharedUdpSocketEvents>(        event: T,        fn: (            ...args: ArgumentMap<SharedUdpSocketEvents>[Extract<                T,                keyof SharedUdpSocketEvents,            >],        ) => void,        context?: any,    ): this;    once<T extends keyof SharedUdpSocketEvents>(        event: T,        fn: (            ...args: ArgumentMap<SharedUdpSocketEvents>[Extract<                T,                keyof SharedUdpSocketEvents,            >],        ) => void,        context?: any,    ): this;    removeAllListeners(event?: keyof SharedUdpSocketEvents
): this;    removeListener<T extends keyof SharedUdpSocketEvents>(        event: T,        fn?: (            ...args: ArgumentMap<SharedUdpSocketEvents>[Extract<                T,                keyof SharedUdpSocketEvents,            >],        ) => void,        context?: any,        once?: boolean,    ): this;    send(        bufferOrList:            | string            | Buffer<ArrayBufferLike>            | number[]            | DataView<ArrayBufferLike>,        port: number,        address: string,        callback?: () => void,    ): void;    send(        buffer: string | Buffer<ArrayBufferLike> | DataView<ArrayBufferLike>,        offset: number,        length: number,        port: number,        address: string,        callback?: () => void,    ): void;}  Methods
bind
bind(port: number, address?: string, callback?: () => void): void Parameters
- port: number
 Optionaladdress: stringOptionalcallback: () => void
Returns void
close
close(callback?: () => void): void Parameters
Optionalcallback: () => void
Returns void
removeAllListeners
removeAllListeners(event?: keyof SharedUdpSocketEvents
): this Parameters
Optionalevent: keyof SharedUdpSocketEvents
Returns this
send
send(    bufferOrList:        | string        | Buffer<ArrayBufferLike>        | number[]        | DataView<ArrayBufferLike>,    port: number,    address: string,    callback?: () => void,): void Parameters
- bufferOrList: string | Buffer<ArrayBufferLike> | number[] | DataView<ArrayBufferLike>
 - port: number
 - address: string
 Optionalcallback: () => void
Returns void
send(    buffer: string | Buffer<ArrayBufferLike> | DataView<ArrayBufferLike>,    offset: number,    length: number,    port: number,    address: string,    callback?: () => void,): void Parameters
- buffer: string | Buffer<ArrayBufferLike> | DataView<ArrayBufferLike>
 - offset: number
 - length: number
 - port: number
 - address: string
 Optionalcallback: () => void
Returns void
Bind to the shared socket. Until you call this, the shared socket will be inactive