Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366
  1. declare module "dns" {
  2. // Supported getaddrinfo flags.
  3. const ADDRCONFIG: number;
  4. const V4MAPPED: number;
  5. interface LookupOptions {
  6. family?: number;
  7. hints?: number;
  8. all?: boolean;
  9. verbatim?: boolean;
  10. }
  11. interface LookupOneOptions extends LookupOptions {
  12. all?: false;
  13. }
  14. interface LookupAllOptions extends LookupOptions {
  15. all: true;
  16. }
  17. interface LookupAddress {
  18. address: string;
  19. family: number;
  20. }
  21. function lookup(hostname: string, family: number, callback: (err: NodeJS.ErrnoException | null, address: string, family: number) => void): void;
  22. function lookup(hostname: string, options: LookupOneOptions, callback: (err: NodeJS.ErrnoException | null, address: string, family: number) => void): void;
  23. function lookup(hostname: string, options: LookupAllOptions, callback: (err: NodeJS.ErrnoException | null, addresses: LookupAddress[]) => void): void;
  24. function lookup(hostname: string, options: LookupOptions, callback: (err: NodeJS.ErrnoException | null, address: string | LookupAddress[], family: number) => void): void;
  25. function lookup(hostname: string, callback: (err: NodeJS.ErrnoException | null, address: string, family: number) => void): void;
  26. // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime.
  27. namespace lookup {
  28. function __promisify__(hostname: string, options: LookupAllOptions): Promise<{ address: LookupAddress[] }>;
  29. function __promisify__(hostname: string, options?: LookupOneOptions | number): Promise<{ address: string, family: number }>;
  30. function __promisify__(hostname: string, options?: LookupOptions | number): Promise<{ address: string | LookupAddress[], family?: number }>;
  31. }
  32. function lookupService(address: string, port: number, callback: (err: NodeJS.ErrnoException | null, hostname: string, service: string) => void): void;
  33. namespace lookupService {
  34. function __promisify__(address: string, port: number): Promise<{ hostname: string, service: string }>;
  35. }
  36. interface ResolveOptions {
  37. ttl: boolean;
  38. }
  39. interface ResolveWithTtlOptions extends ResolveOptions {
  40. ttl: true;
  41. }
  42. interface RecordWithTtl {
  43. address: string;
  44. ttl: number;
  45. }
  46. /** @deprecated Use AnyARecord or AnyAaaaRecord instead. */
  47. type AnyRecordWithTtl = AnyARecord | AnyAaaaRecord;
  48. interface AnyARecord extends RecordWithTtl {
  49. type: "A";
  50. }
  51. interface AnyAaaaRecord extends RecordWithTtl {
  52. type: "AAAA";
  53. }
  54. interface MxRecord {
  55. priority: number;
  56. exchange: string;
  57. }
  58. interface AnyMxRecord extends MxRecord {
  59. type: "MX";
  60. }
  61. interface NaptrRecord {
  62. flags: string;
  63. service: string;
  64. regexp: string;
  65. replacement: string;
  66. order: number;
  67. preference: number;
  68. }
  69. interface AnyNaptrRecord extends NaptrRecord {
  70. type: "NAPTR";
  71. }
  72. interface SoaRecord {
  73. nsname: string;
  74. hostmaster: string;
  75. serial: number;
  76. refresh: number;
  77. retry: number;
  78. expire: number;
  79. minttl: number;
  80. }
  81. interface AnySoaRecord extends SoaRecord {
  82. type: "SOA";
  83. }
  84. interface SrvRecord {
  85. priority: number;
  86. weight: number;
  87. port: number;
  88. name: string;
  89. }
  90. interface AnySrvRecord extends SrvRecord {
  91. type: "SRV";
  92. }
  93. interface AnyTxtRecord {
  94. type: "TXT";
  95. entries: string[];
  96. }
  97. interface AnyNsRecord {
  98. type: "NS";
  99. value: string;
  100. }
  101. interface AnyPtrRecord {
  102. type: "PTR";
  103. value: string;
  104. }
  105. interface AnyCnameRecord {
  106. type: "CNAME";
  107. value: string;
  108. }
  109. type AnyRecord = AnyARecord |
  110. AnyAaaaRecord |
  111. AnyCnameRecord |
  112. AnyMxRecord |
  113. AnyNaptrRecord |
  114. AnyNsRecord |
  115. AnyPtrRecord |
  116. AnySoaRecord |
  117. AnySrvRecord |
  118. AnyTxtRecord;
  119. function resolve(hostname: string, callback: (err: NodeJS.ErrnoException | null, addresses: string[]) => void): void;
  120. function resolve(hostname: string, rrtype: "A", callback: (err: NodeJS.ErrnoException | null, addresses: string[]) => void): void;
  121. function resolve(hostname: string, rrtype: "AAAA", callback: (err: NodeJS.ErrnoException | null, addresses: string[]) => void): void;
  122. function resolve(hostname: string, rrtype: "ANY", callback: (err: NodeJS.ErrnoException | null, addresses: AnyRecord[]) => void): void;
  123. function resolve(hostname: string, rrtype: "CNAME", callback: (err: NodeJS.ErrnoException | null, addresses: string[]) => void): void;
  124. function resolve(hostname: string, rrtype: "MX", callback: (err: NodeJS.ErrnoException | null, addresses: MxRecord[]) => void): void;
  125. function resolve(hostname: string, rrtype: "NAPTR", callback: (err: NodeJS.ErrnoException | null, addresses: NaptrRecord[]) => void): void;
  126. function resolve(hostname: string, rrtype: "NS", callback: (err: NodeJS.ErrnoException | null, addresses: string[]) => void): void;
  127. function resolve(hostname: string, rrtype: "PTR", callback: (err: NodeJS.ErrnoException | null, addresses: string[]) => void): void;
  128. function resolve(hostname: string, rrtype: "SOA", callback: (err: NodeJS.ErrnoException | null, addresses: SoaRecord) => void): void;
  129. function resolve(hostname: string, rrtype: "SRV", callback: (err: NodeJS.ErrnoException | null, addresses: SrvRecord[]) => void): void;
  130. function resolve(hostname: string, rrtype: "TXT", callback: (err: NodeJS.ErrnoException | null, addresses: string[][]) => void): void;
  131. function resolve(
  132. hostname: string,
  133. rrtype: string,
  134. callback: (err: NodeJS.ErrnoException | null, addresses: string[] | MxRecord[] | NaptrRecord[] | SoaRecord | SrvRecord[] | string[][] | AnyRecord[]) => void,
  135. ): void;
  136. // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime.
  137. namespace resolve {
  138. function __promisify__(hostname: string, rrtype?: "A" | "AAAA" | "CNAME" | "NS" | "PTR"): Promise<string[]>;
  139. function __promisify__(hostname: string, rrtype: "ANY"): Promise<AnyRecord[]>;
  140. function __promisify__(hostname: string, rrtype: "MX"): Promise<MxRecord[]>;
  141. function __promisify__(hostname: string, rrtype: "NAPTR"): Promise<NaptrRecord[]>;
  142. function __promisify__(hostname: string, rrtype: "SOA"): Promise<SoaRecord>;
  143. function __promisify__(hostname: string, rrtype: "SRV"): Promise<SrvRecord[]>;
  144. function __promisify__(hostname: string, rrtype: "TXT"): Promise<string[][]>;
  145. function __promisify__(hostname: string, rrtype: string): Promise<string[] | MxRecord[] | NaptrRecord[] | SoaRecord | SrvRecord[] | string[][] | AnyRecord[]>;
  146. }
  147. function resolve4(hostname: string, callback: (err: NodeJS.ErrnoException | null, addresses: string[]) => void): void;
  148. function resolve4(hostname: string, options: ResolveWithTtlOptions, callback: (err: NodeJS.ErrnoException | null, addresses: RecordWithTtl[]) => void): void;
  149. function resolve4(hostname: string, options: ResolveOptions, callback: (err: NodeJS.ErrnoException | null, addresses: string[] | RecordWithTtl[]) => void): void;
  150. // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime.
  151. namespace resolve4 {
  152. function __promisify__(hostname: string): Promise<string[]>;
  153. function __promisify__(hostname: string, options: ResolveWithTtlOptions): Promise<RecordWithTtl[]>;
  154. function __promisify__(hostname: string, options?: ResolveOptions): Promise<string[] | RecordWithTtl[]>;
  155. }
  156. function resolve6(hostname: string, callback: (err: NodeJS.ErrnoException | null, addresses: string[]) => void): void;
  157. function resolve6(hostname: string, options: ResolveWithTtlOptions, callback: (err: NodeJS.ErrnoException | null, addresses: RecordWithTtl[]) => void): void;
  158. function resolve6(hostname: string, options: ResolveOptions, callback: (err: NodeJS.ErrnoException | null, addresses: string[] | RecordWithTtl[]) => void): void;
  159. // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime.
  160. namespace resolve6 {
  161. function __promisify__(hostname: string): Promise<string[]>;
  162. function __promisify__(hostname: string, options: ResolveWithTtlOptions): Promise<RecordWithTtl[]>;
  163. function __promisify__(hostname: string, options?: ResolveOptions): Promise<string[] | RecordWithTtl[]>;
  164. }
  165. function resolveCname(hostname: string, callback: (err: NodeJS.ErrnoException | null, addresses: string[]) => void): void;
  166. namespace resolveCname {
  167. function __promisify__(hostname: string): Promise<string[]>;
  168. }
  169. function resolveMx(hostname: string, callback: (err: NodeJS.ErrnoException | null, addresses: MxRecord[]) => void): void;
  170. namespace resolveMx {
  171. function __promisify__(hostname: string): Promise<MxRecord[]>;
  172. }
  173. function resolveNaptr(hostname: string, callback: (err: NodeJS.ErrnoException | null, addresses: NaptrRecord[]) => void): void;
  174. namespace resolveNaptr {
  175. function __promisify__(hostname: string): Promise<NaptrRecord[]>;
  176. }
  177. function resolveNs(hostname: string, callback: (err: NodeJS.ErrnoException | null, addresses: string[]) => void): void;
  178. namespace resolveNs {
  179. function __promisify__(hostname: string): Promise<string[]>;
  180. }
  181. function resolvePtr(hostname: string, callback: (err: NodeJS.ErrnoException | null, addresses: string[]) => void): void;
  182. namespace resolvePtr {
  183. function __promisify__(hostname: string): Promise<string[]>;
  184. }
  185. function resolveSoa(hostname: string, callback: (err: NodeJS.ErrnoException | null, address: SoaRecord) => void): void;
  186. namespace resolveSoa {
  187. function __promisify__(hostname: string): Promise<SoaRecord>;
  188. }
  189. function resolveSrv(hostname: string, callback: (err: NodeJS.ErrnoException | null, addresses: SrvRecord[]) => void): void;
  190. namespace resolveSrv {
  191. function __promisify__(hostname: string): Promise<SrvRecord[]>;
  192. }
  193. function resolveTxt(hostname: string, callback: (err: NodeJS.ErrnoException | null, addresses: string[][]) => void): void;
  194. namespace resolveTxt {
  195. function __promisify__(hostname: string): Promise<string[][]>;
  196. }
  197. function resolveAny(hostname: string, callback: (err: NodeJS.ErrnoException | null, addresses: AnyRecord[]) => void): void;
  198. namespace resolveAny {
  199. function __promisify__(hostname: string): Promise<AnyRecord[]>;
  200. }
  201. function reverse(ip: string, callback: (err: NodeJS.ErrnoException | null, hostnames: string[]) => void): void;
  202. function setServers(servers: ReadonlyArray<string>): void;
  203. function getServers(): string[];
  204. // Error codes
  205. const NODATA: string;
  206. const FORMERR: string;
  207. const SERVFAIL: string;
  208. const NOTFOUND: string;
  209. const NOTIMP: string;
  210. const REFUSED: string;
  211. const BADQUERY: string;
  212. const BADNAME: string;
  213. const BADFAMILY: string;
  214. const BADRESP: string;
  215. const CONNREFUSED: string;
  216. const TIMEOUT: string;
  217. const EOF: string;
  218. const FILE: string;
  219. const NOMEM: string;
  220. const DESTRUCTION: string;
  221. const BADSTR: string;
  222. const BADFLAGS: string;
  223. const NONAME: string;
  224. const BADHINTS: string;
  225. const NOTINITIALIZED: string;
  226. const LOADIPHLPAPI: string;
  227. const ADDRGETNETWORKPARAMS: string;
  228. const CANCELLED: string;
  229. class Resolver {
  230. getServers: typeof getServers;
  231. setServers: typeof setServers;
  232. resolve: typeof resolve;
  233. resolve4: typeof resolve4;
  234. resolve6: typeof resolve6;
  235. resolveAny: typeof resolveAny;
  236. resolveCname: typeof resolveCname;
  237. resolveMx: typeof resolveMx;
  238. resolveNaptr: typeof resolveNaptr;
  239. resolveNs: typeof resolveNs;
  240. resolvePtr: typeof resolvePtr;
  241. resolveSoa: typeof resolveSoa;
  242. resolveSrv: typeof resolveSrv;
  243. resolveTxt: typeof resolveTxt;
  244. reverse: typeof reverse;
  245. cancel(): void;
  246. }
  247. namespace promises {
  248. function getServers(): string[];
  249. function lookup(hostname: string, family: number): Promise<LookupAddress>;
  250. function lookup(hostname: string, options: LookupOneOptions): Promise<LookupAddress>;
  251. function lookup(hostname: string, options: LookupAllOptions): Promise<LookupAddress[]>;
  252. function lookup(hostname: string, options: LookupOptions): Promise<LookupAddress | LookupAddress[]>;
  253. function lookup(hostname: string): Promise<LookupAddress>;
  254. function lookupService(address: string, port: number): Promise<{ hostname: string, service: string }>;
  255. function resolve(hostname: string): Promise<string[]>;
  256. function resolve(hostname: string, rrtype: "A"): Promise<string[]>;
  257. function resolve(hostname: string, rrtype: "AAAA"): Promise<string[]>;
  258. function resolve(hostname: string, rrtype: "ANY"): Promise<AnyRecord[]>;
  259. function resolve(hostname: string, rrtype: "CNAME"): Promise<string[]>;
  260. function resolve(hostname: string, rrtype: "MX"): Promise<MxRecord[]>;
  261. function resolve(hostname: string, rrtype: "NAPTR"): Promise<NaptrRecord[]>;
  262. function resolve(hostname: string, rrtype: "NS"): Promise<string[]>;
  263. function resolve(hostname: string, rrtype: "PTR"): Promise<string[]>;
  264. function resolve(hostname: string, rrtype: "SOA"): Promise<SoaRecord>;
  265. function resolve(hostname: string, rrtype: "SRV"): Promise<SrvRecord[]>;
  266. function resolve(hostname: string, rrtype: "TXT"): Promise<string[][]>;
  267. function resolve(hostname: string, rrtype: string): Promise<string[] | MxRecord[] | NaptrRecord[] | SoaRecord | SrvRecord[] | string[][] | AnyRecord[]>;
  268. function resolve4(hostname: string): Promise<string[]>;
  269. function resolve4(hostname: string, options: ResolveWithTtlOptions): Promise<RecordWithTtl[]>;
  270. function resolve4(hostname: string, options: ResolveOptions): Promise<string[] | RecordWithTtl[]>;
  271. function resolve6(hostname: string): Promise<string[]>;
  272. function resolve6(hostname: string, options: ResolveWithTtlOptions): Promise<RecordWithTtl[]>;
  273. function resolve6(hostname: string, options: ResolveOptions): Promise<string[] | RecordWithTtl[]>;
  274. function resolveAny(hostname: string): Promise<AnyRecord[]>;
  275. function resolveCname(hostname: string): Promise<string[]>;
  276. function resolveMx(hostname: string): Promise<MxRecord[]>;
  277. function resolveNaptr(hostname: string): Promise<NaptrRecord[]>;
  278. function resolveNs(hostname: string): Promise<string[]>;
  279. function resolvePtr(hostname: string): Promise<string[]>;
  280. function resolveSoa(hostname: string): Promise<SoaRecord>;
  281. function resolveSrv(hostname: string): Promise<SrvRecord[]>;
  282. function resolveTxt(hostname: string): Promise<string[][]>;
  283. function reverse(ip: string): Promise<string[]>;
  284. function setServers(servers: ReadonlyArray<string>): void;
  285. class Resolver {
  286. getServers: typeof getServers;
  287. resolve: typeof resolve;
  288. resolve4: typeof resolve4;
  289. resolve6: typeof resolve6;
  290. resolveAny: typeof resolveAny;
  291. resolveCname: typeof resolveCname;
  292. resolveMx: typeof resolveMx;
  293. resolveNaptr: typeof resolveNaptr;
  294. resolveNs: typeof resolveNs;
  295. resolvePtr: typeof resolvePtr;
  296. resolveSoa: typeof resolveSoa;
  297. resolveSrv: typeof resolveSrv;
  298. resolveTxt: typeof resolveTxt;
  299. reverse: typeof reverse;
  300. setServers: typeof setServers;
  301. }
  302. }
  303. }