import * as plugins from './plugins.js'; export type TDnsProvider = 'google' | 'cloudflare'; export declare const makeNodeProcessUseDnsProvider: (providerArg: TDnsProvider) => void; export type TResolutionStrategy = 'doh' | 'udp' | 'system' | 'prefer-system' | 'prefer-udp'; export interface ISmartDnsConstructorOptions { strategy?: TResolutionStrategy; allowDohFallback?: boolean; timeoutMs?: number; } /** * Smartdns offers methods for working with DNS resolution. * Supports system resolver, UDP wire-format, and DoH (DNS-over-HTTPS) via a Rust binary. */ export declare class Smartdns { private strategy; private allowDohFallback; private timeoutMs; private rustBridge; dnsTypeMap: { [key: string]: number; }; constructor(optionsArg: ISmartDnsConstructorOptions); private getRustBridge; /** * check a dns record until it has propagated */ checkUntilAvailable(recordNameArg: string, recordTypeArg: plugins.tsclass.network.TDnsRecordType, expectedValue: string, cyclesArg?: number, intervalArg?: number): Promise; /** * get A Dns Record */ getRecordsA(recordNameArg: string): Promise; /** * get AAAA Record */ getRecordsAAAA(recordNameArg: string): Promise; /** * gets a txt record */ getRecordsTxt(recordNameArg: string): Promise; getRecords(recordNameArg: string, recordTypeArg: plugins.tsclass.network.TDnsRecordType, retriesCounterArg?: number): Promise; /** * gets a record using nodejs dns resolver */ getRecordWithNodeDNS(recordNameArg: string, recordTypeArg: plugins.tsclass.network.TDnsRecordType): Promise; getNameServers(domainNameArg: string): Promise; convertDnsTypeNameToTypeNumber(dnsTypeNameArg: string): number; convertDnsTypeNumberToTypeName(dnsTypeNumberArg: number): plugins.tsclass.network.TDnsRecordType | null; /** * Convert a DNS type string from Rust (e.g. "A", "AAAA") to the canonical TDnsRecordType. */ private convertDnsTypeNameToCanonical; /** * Destroy the Rust client bridge and free resources. */ destroy(): void; }