UNPKG

4.67 kBTypeScriptView Raw
1declare module "dgram" {
2 import { AddressInfo } from "net";
3 import * as dns from "dns";
4 import * as events from "events";
5
6 interface RemoteInfo {
7 address: string;
8 family: 'IPv4' | 'IPv6';
9 port: number;
10 size: number;
11 }
12
13 interface BindOptions {
14 port: number;
15 address?: string;
16 exclusive?: boolean;
17 }
18
19 type SocketType = "udp4" | "udp6";
20
21 interface SocketOptions {
22 type: SocketType;
23 reuseAddr?: boolean;
24 /**
25 * @default false
26 */
27 ipv6Only?: boolean;
28 recvBufferSize?: number;
29 sendBufferSize?: number;
30 lookup?: (hostname: string, options: dns.LookupOneOptions, callback: (err: NodeJS.ErrnoException | null, address: string, family: number) => void) => void;
31 }
32
33 function createSocket(type: SocketType, callback?: (msg: Buffer, rinfo: RemoteInfo) => void): Socket;
34 function createSocket(options: SocketOptions, callback?: (msg: Buffer, rinfo: RemoteInfo) => void): Socket;
35
36 class Socket extends events.EventEmitter {
37 send(msg: string | Uint8Array | any[], port: number, address?: string, callback?: (error: Error | null, bytes: number) => void): void;
38 send(msg: string | Uint8Array, offset: number, length: number, port: number, address?: string, callback?: (error: Error | null, bytes: number) => void): void;
39 bind(port?: number, address?: string, callback?: () => void): void;
40 bind(port?: number, callback?: () => void): void;
41 bind(callback?: () => void): void;
42 bind(options: BindOptions, callback?: () => void): void;
43 close(callback?: () => void): void;
44 address(): AddressInfo | string;
45 setBroadcast(flag: boolean): void;
46 setTTL(ttl: number): void;
47 setMulticastTTL(ttl: number): void;
48 setMulticastInterface(multicastInterface: string): void;
49 setMulticastLoopback(flag: boolean): void;
50 addMembership(multicastAddress: string, multicastInterface?: string): void;
51 dropMembership(multicastAddress: string, multicastInterface?: string): void;
52 ref(): this;
53 unref(): this;
54 setRecvBufferSize(size: number): void;
55 setSendBufferSize(size: number): void;
56 getRecvBufferSize(): number;
57 getSendBufferSize(): number;
58
59 /**
60 * events.EventEmitter
61 * 1. close
62 * 2. error
63 * 3. listening
64 * 4. message
65 */
66 addListener(event: string, listener: (...args: any[]) => void): this;
67 addListener(event: "close", listener: () => void): this;
68 addListener(event: "error", listener: (err: Error) => void): this;
69 addListener(event: "listening", listener: () => void): this;
70 addListener(event: "message", listener: (msg: Buffer, rinfo: RemoteInfo) => void): this;
71
72 emit(event: string | symbol, ...args: any[]): boolean;
73 emit(event: "close"): boolean;
74 emit(event: "error", err: Error): boolean;
75 emit(event: "listening"): boolean;
76 emit(event: "message", msg: Buffer, rinfo: RemoteInfo): boolean;
77
78 on(event: string, listener: (...args: any[]) => void): this;
79 on(event: "close", listener: () => void): this;
80 on(event: "error", listener: (err: Error) => void): this;
81 on(event: "listening", listener: () => void): this;
82 on(event: "message", listener: (msg: Buffer, rinfo: RemoteInfo) => void): this;
83
84 once(event: string, listener: (...args: any[]) => void): this;
85 once(event: "close", listener: () => void): this;
86 once(event: "error", listener: (err: Error) => void): this;
87 once(event: "listening", listener: () => void): this;
88 once(event: "message", listener: (msg: Buffer, rinfo: RemoteInfo) => void): this;
89
90 prependListener(event: string, listener: (...args: any[]) => void): this;
91 prependListener(event: "close", listener: () => void): this;
92 prependListener(event: "error", listener: (err: Error) => void): this;
93 prependListener(event: "listening", listener: () => void): this;
94 prependListener(event: "message", listener: (msg: Buffer, rinfo: RemoteInfo) => void): this;
95
96 prependOnceListener(event: string, listener: (...args: any[]) => void): this;
97 prependOnceListener(event: "close", listener: () => void): this;
98 prependOnceListener(event: "error", listener: (err: Error) => void): this;
99 prependOnceListener(event: "listening", listener: () => void): this;
100 prependOnceListener(event: "message", listener: (msg: Buffer, rinfo: RemoteInfo) => void): this;
101 }
102}