type IPFamily = 4 | 6 interface LookupOptions { family?: `IPv${IPFamily}` | IPFamily | 0 hints?: number all?: boolean } declare class DNSResolver { resolveTxt( hostname: string, cb: (err: Error | null, records: string[][]) => void ): void destroy(): void } declare namespace dns { export function lookup( hostname: string, cb: ( err: Error | null, address: string | null, family: IPFamily | 0 ) => void ): void export function lookup( hostname: string, opts: LookupOptions & { all?: false }, cb: ( err: Error | null, address: string | null, family: IPFamily | 0 ) => void ): void export function lookup( hostname: string, opts: LookupOptions & { all: true }, cb: ( err: Error | null, addresses: { address: string; family: IPFamily }[] | null ) => void ): void export function resolveTxt( hostname: string, cb: (err: Error | null, records: string[][]) => void ): void export { type IPFamily, type LookupOptions, DNSResolver as Resolver } } export = dns