declare module 'dns' { import * as dnsPromises from "dns/promises"; // Supported getaddrinfo flags. export const ADDRCONFIG: number; export const V4MAPPED: number; /** * If `dns.V4MAPPED` is specified, return resolved IPv6 addresses as * well as IPv4 mapped IPv6 addresses. */ export const ALL: number; export interface LookupOptions { family?: number; hints?: number; all?: boolean; verbatim?: boolean; } export interface LookupOneOptions extends LookupOptions { all?: false; } export interface LookupAllOptions extends LookupOptions { all: true; } export interface LookupAddress { address: string; family: number; } export function lookup(hostname: string, family: number, callback: (err: NodeJS.ErrnoException | null, address: string, family: number) => void): void; export function lookup(hostname: string, options: LookupOneOptions, callback: (err: NodeJS.ErrnoException | null, address: string, family: number) => void): void; export function lookup(hostname: string, options: LookupAllOptions, callback: (err: NodeJS.ErrnoException | null, addresses: LookupAddress[]) => void): void; export function lookup(hostname: string, options: LookupOptions, callback: (err: NodeJS.ErrnoException | null, address: string | LookupAddress[], family: number) => void): void; export function lookup(hostname: string, callback: (err: NodeJS.ErrnoException | null, address: string, family: number) => void): void; // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. export namespace lookup { function __promisify__(hostname: string, options: LookupAllOptions): Promise; function __promisify__(hostname: string, options?: LookupOneOptions | number): Promise; function __promisify__(hostname: string, options: LookupOptions): Promise; } export function lookupService(address: string, port: number, callback: (err: NodeJS.ErrnoException | null, hostname: string, service: string) => void): void; export namespace lookupService { function __promisify__(address: string, port: number): Promise<{ hostname: string, service: string }>; } export interface ResolveOptions { ttl: boolean; } export interface ResolveWithTtlOptions extends ResolveOptions { ttl: true; } export interface RecordWithTtl { address: string; ttl: number; } /** @deprecated Use `AnyARecord` or `AnyAaaaRecord` instead. */ export type AnyRecordWithTtl = AnyARecord | AnyAaaaRecord; export interface AnyARecord extends RecordWithTtl { type: "A"; } export interface AnyAaaaRecord extends RecordWithTtl { type: "AAAA"; } export interface CaaRecord { critial: number; issue?: string; issuewild?: string; iodef?: string; contactemail?: string; contactphone?: string; } export interface MxRecord { priority: number; exchange: string; } export interface AnyMxRecord extends MxRecord { type: "MX"; } export interface NaptrRecord { flags: string; service: string; regexp: string; replacement: string; order: number; preference: number; } export interface AnyNaptrRecord extends NaptrRecord { type: "NAPTR"; } export interface SoaRecord { nsname: string; hostmaster: string; serial: number; refresh: number; retry: number; expire: number; minttl: number; } export interface AnySoaRecord extends SoaRecord { type: "SOA"; } export interface SrvRecord { priority: number; weight: number; port: number; name: string; } export interface AnySrvRecord extends SrvRecord { type: "SRV"; } export interface AnyTxtRecord { type: "TXT"; entries: string[]; } export interface AnyNsRecord { type: "NS"; value: string; } export interface AnyPtrRecord { type: "PTR"; value: string; } export interface AnyCnameRecord { type: "CNAME"; value: string; } export type AnyRecord = AnyARecord | AnyAaaaRecord | AnyCnameRecord | AnyMxRecord | AnyNaptrRecord | AnyNsRecord | AnyPtrRecord | AnySoaRecord | AnySrvRecord | AnyTxtRecord; export function resolve(hostname: string, callback: (err: NodeJS.ErrnoException | null, addresses: string[]) => void): void; export function resolve(hostname: string, rrtype: "A", callback: (err: NodeJS.ErrnoException | null, addresses: string[]) => void): void; export function resolve(hostname: string, rrtype: "AAAA", callback: (err: NodeJS.ErrnoException | null, addresses: string[]) => void): void; export function resolve(hostname: string, rrtype: "ANY", callback: (err: NodeJS.ErrnoException | null, addresses: AnyRecord[]) => void): void; export function resolve(hostname: string, rrtype: "CNAME", callback: (err: NodeJS.ErrnoException | null, addresses: string[]) => void): void; export function resolve(hostname: string, rrtype: "MX", callback: (err: NodeJS.ErrnoException | null, addresses: MxRecord[]) => void): void; export function resolve(hostname: string, rrtype: "NAPTR", callback: (err: NodeJS.ErrnoException | null, addresses: NaptrRecord[]) => void): void; export function resolve(hostname: string, rrtype: "NS", callback: (err: NodeJS.ErrnoException | null, addresses: string[]) => void): void; export function resolve(hostname: string, rrtype: "PTR", callback: (err: NodeJS.ErrnoException | null, addresses: string[]) => void): void; export function resolve(hostname: string, rrtype: "SOA", callback: (err: NodeJS.ErrnoException | null, addresses: SoaRecord) => void): void; export function resolve(hostname: string, rrtype: "SRV", callback: (err: NodeJS.ErrnoException | null, addresses: SrvRecord[]) => void): void; export function resolve(hostname: string, rrtype: "TXT", callback: (err: NodeJS.ErrnoException | null, addresses: string[][]) => void): void; export function resolve( hostname: string, rrtype: string, callback: (err: NodeJS.ErrnoException | null, addresses: string[] | MxRecord[] | NaptrRecord[] | SoaRecord | SrvRecord[] | string[][] | AnyRecord[]) => void, ): void; // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. export namespace resolve { function __promisify__(hostname: string, rrtype?: "A" | "AAAA" | "CNAME" | "NS" | "PTR"): Promise; function __promisify__(hostname: string, rrtype: "ANY"): Promise; function __promisify__(hostname: string, rrtype: "MX"): Promise; function __promisify__(hostname: string, rrtype: "NAPTR"): Promise; function __promisify__(hostname: string, rrtype: "SOA"): Promise; function __promisify__(hostname: string, rrtype: "SRV"): Promise; function __promisify__(hostname: string, rrtype: "TXT"): Promise; function __promisify__(hostname: string, rrtype: string): Promise; } export function resolve4(hostname: string, callback: (err: NodeJS.ErrnoException | null, addresses: string[]) => void): void; export function resolve4(hostname: string, options: ResolveWithTtlOptions, callback: (err: NodeJS.ErrnoException | null, addresses: RecordWithTtl[]) => void): void; export function resolve4(hostname: string, options: ResolveOptions, callback: (err: NodeJS.ErrnoException | null, addresses: string[] | RecordWithTtl[]) => void): void; // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. export namespace resolve4 { function __promisify__(hostname: string): Promise; function __promisify__(hostname: string, options: ResolveWithTtlOptions): Promise; function __promisify__(hostname: string, options?: ResolveOptions): Promise; } export function resolve6(hostname: string, callback: (err: NodeJS.ErrnoException | null, addresses: string[]) => void): void; export function resolve6(hostname: string, options: ResolveWithTtlOptions, callback: (err: NodeJS.ErrnoException | null, addresses: RecordWithTtl[]) => void): void; export function resolve6(hostname: string, options: ResolveOptions, callback: (err: NodeJS.ErrnoException | null, addresses: string[] | RecordWithTtl[]) => void): void; // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. export namespace resolve6 { function __promisify__(hostname: string): Promise; function __promisify__(hostname: string, options: ResolveWithTtlOptions): Promise; function __promisify__(hostname: string, options?: ResolveOptions): Promise; } export function resolveCname(hostname: string, callback: (err: NodeJS.ErrnoException | null, addresses: string[]) => void): void; export namespace resolveCname { function __promisify__(hostname: string): Promise; } export function resolveCaa(hostname: string, callback: (err: NodeJS.ErrnoException | null, records: CaaRecord[]) => void): void; export namespace resolveCaa { function __promisify__(hostname: string): Promise; } export function resolveMx(hostname: string, callback: (err: NodeJS.ErrnoException | null, addresses: MxRecord[]) => void): void; export namespace resolveMx { function __promisify__(hostname: string): Promise; } export function resolveNaptr(hostname: string, callback: (err: NodeJS.ErrnoException | null, addresses: NaptrRecord[]) => void): void; export namespace resolveNaptr { function __promisify__(hostname: string): Promise; } export function resolveNs(hostname: string, callback: (err: NodeJS.ErrnoException | null, addresses: string[]) => void): void; export namespace resolveNs { function __promisify__(hostname: string): Promise; } export function resolvePtr(hostname: string, callback: (err: NodeJS.ErrnoException | null, addresses: string[]) => void): void; export namespace resolvePtr { function __promisify__(hostname: string): Promise; } export function resolveSoa(hostname: string, callback: (err: NodeJS.ErrnoException | null, address: SoaRecord) => void): void; export namespace resolveSoa { function __promisify__(hostname: string): Promise; } export function resolveSrv(hostname: string, callback: (err: NodeJS.ErrnoException | null, addresses: SrvRecord[]) => void): void; export namespace resolveSrv { function __promisify__(hostname: string): Promise; } export function resolveTxt(hostname: string, callback: (err: NodeJS.ErrnoException | null, addresses: string[][]) => void): void; export namespace resolveTxt { function __promisify__(hostname: string): Promise; } export function resolveAny(hostname: string, callback: (err: NodeJS.ErrnoException | null, addresses: AnyRecord[]) => void): void; export namespace resolveAny { function __promisify__(hostname: string): Promise; } export function reverse(ip: string, callback: (err: NodeJS.ErrnoException | null, hostnames: string[]) => void): void; export function setServers(servers: ReadonlyArray): void; export function getServers(): string[]; // Error codes export const NODATA: string; export const FORMERR: string; export const SERVFAIL: string; export const NOTFOUND: string; export const NOTIMP: string; export const REFUSED: string; export const BADQUERY: string; export const BADNAME: string; export const BADFAMILY: string; export const BADRESP: string; export const CONNREFUSED: string; export const TIMEOUT: string; export const EOF: string; export const FILE: string; export const NOMEM: string; export const DESTRUCTION: string; export const BADSTR: string; export const BADFLAGS: string; export const NONAME: string; export const BADHINTS: string; export const NOTINITIALIZED: string; export const LOADIPHLPAPI: string; export const ADDRGETNETWORKPARAMS: string; export const CANCELLED: string; export interface ResolverOptions { timeout?: number; } export class Resolver { constructor(options?: ResolverOptions); cancel(): void; getServers: typeof getServers; resolve: typeof resolve; resolve4: typeof resolve4; resolve6: typeof resolve6; resolveAny: typeof resolveAny; resolveCname: typeof resolveCname; resolveMx: typeof resolveMx; resolveNaptr: typeof resolveNaptr; resolveNs: typeof resolveNs; resolvePtr: typeof resolvePtr; resolveSoa: typeof resolveSoa; resolveSrv: typeof resolveSrv; resolveTxt: typeof resolveTxt; reverse: typeof reverse; setLocalAddress(ipv4?: string, ipv6?: string): void; setServers: typeof setServers; } export { dnsPromises as promises }; }