import { type Address, type Chain } from 'viem'; import type { RequireClientContracts } from '../../clients/chain.js'; import { DnsDnssecVerificationFailedError, DnsDnssecWildcardExpansionError, DnsInvalidTxtRecordError, DnsNoTxtRecordError, DnsResponseStatusError } from '../../errors/dns.js'; import { UnsupportedNameTypeError } from '../../errors/general.js'; import type { Endpoint } from './types.js'; export type GetDnsOffchainDataParameters = { /** Name to get the offchain data for */ name: string; /** An RFC-1035 compatible DNS endpoint to use (default: `https://cloudflare-dns.com/dns-query`) */ endpoint?: Endpoint; /** Whether or not to throw errors */ strict?: boolean; }; export type GetDnsOffchainDataReturnType = { resolverAddress: Address; extraData: string | null; } | null; export type GetDnsOffchainDataErrorType = DnsDnssecVerificationFailedError | DnsDnssecWildcardExpansionError | DnsInvalidTxtRecordError | DnsNoTxtRecordError | DnsResponseStatusError | UnsupportedNameTypeError | Error; /** * Gets the DNS offchain data for a name, via DNS record lookup * @param client - {@link Client} * @param parameters - {@link GetDnsOffchainDataParameters} * @returns Resolver address and extra data, or null. {@link GetDnsOffchainDataReturnType} * * @example * import { createPublicClient, http } from 'viem' * import { mainnet } from 'viem/chains' * import { addEnsContracts } from '@ensdomains/ensjs' * import { getDnsOffchainData } from '@ensdomains/ensjs/dns' * * const client = createPublicClient({ * chain: addEnsContracts(mainnet), * transport: http(), * }) * const data = await getDnsOffchainData(client, { * name: 'ethleaderboard.xyz', * }) */ export declare function getDnsOffchainData(client: RequireClientContracts, { name, endpoint, strict }: GetDnsOffchainDataParameters): Promise; //# sourceMappingURL=getDnsOffchainData.d.ts.map