UNPKG

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