import { type Address, type Chain, type GetChainContractAddressErrorType, type ReadContractErrorType, type ToHexErrorType } from 'viem'; import { type PacketToBytesErrorType } from 'viem/ens'; import { type RequireClientContracts } from '../../../clients/chain.js'; export type GetResolverParameters = { /** Name to get resolver for */ name: string; /** Block number to read at */ blockNumber?: bigint; }; export type GetResolverReturnType = Address | null; export type GetResolverErrorType = ReadContractErrorType | GetChainContractAddressErrorType | ToHexErrorType | PacketToBytesErrorType; /** * Gets the resolver address for a name. * * Returns the address records should be read from and written to. The Universal * Resolver locates the resolver bound to the name; when that resolver is a * composite resolver (it delegates to an underlying resolver, such as the ENSv1 * mirror used for unmigrated v1 names), the underlying resolver is returned so * callers get a writable resolver. A plain (non-composite) resolver is already * final and is returned as-is. * * @param client - {@link Client} * @param parameters - {@link GetResolverParameters} * @returns Resolver address, or null if none is found. {@link GetResolverReturnType} * * @example * import { createPublicClient, http } from 'viem' * import { mainnet } from 'viem/chains' * import { addEnsContracts } from '@ensdomains/ensjs' * import { getResolver } from '@ensdomains/ensjs/public' * * const client = createPublicClient({ * chain: addEnsContracts(mainnet), * transport: http(), * }) * const result = await getResolver(client, { name: 'ens.eth' }) * // 0x4976fb03C32e5B8cfe2b6cCB31c09Ba78EBaBa41 */ export declare function getResolver(client: RequireClientContracts, { name, blockNumber }: GetResolverParameters): Promise; //# sourceMappingURL=getResolver.d.ts.map