import { type Account, type Address, type Hash, type Transport } from 'viem'; import type { ChainWithPns, ClientWithAccount } from '../../contracts/consts.js'; import type { Prettify, SimpleTransactionRequest, WriteTransactionParameters } from '../../types.js'; type BaseSetPrimaryNameDataParameters = { /** The name to set as primary */ name: string; /** The address to set the primary name for */ address?: Address; /** The resolver address to use */ resolverAddress?: Address; }; type SelfSetPrimaryNameDataParameters = { address?: never; resolverAddress?: never; }; type OtherSetPrimaryNameDataParameters = { address: Address; resolverAddress?: Address; }; export type SetPrimaryNameDataParameters = BaseSetPrimaryNameDataParameters & (SelfSetPrimaryNameDataParameters | OtherSetPrimaryNameDataParameters); export type SetPrimaryNameDataReturnType = SimpleTransactionRequest; export type SetPrimaryNameParameters = Prettify>; export type SetPrimaryNameReturnType = Hash; export declare const makeFunctionData: (wallet: ClientWithAccount, { name, address, resolverAddress, }: SetPrimaryNameDataParameters) => SetPrimaryNameDataReturnType; /** * Sets a primary name for an address. * @param wallet - {@link ClientWithAccount} * @param parameters - {@link SetPrimaryNameParameters} * @returns Transaction hash. {@link SetPrimaryNameReturnType} * * @example * import { createWalletClient, custom } from 'viem' * import { mainnet } from 'viem/chains' * import { addPnsContracts } from '@pnsdomains/pnsjs' * import { setPrimaryName } from '@pnsdomains/pnsjs/wallet' * * const wallet = createWalletClient({ * chain: addPnsContracts(mainnet), * transport: custom(window.ethereum), * }) * const hash = await setPrimaryName(wallet, { * name: 'pns.pls', * }) * // 0x... */ declare function setPrimaryName(wallet: ClientWithAccount, { name, address, resolverAddress, ...txArgs }: SetPrimaryNameParameters): Promise; declare namespace setPrimaryName { var makeFunctionData: (wallet: ClientWithAccount, { name, address, resolverAddress, }: SetPrimaryNameDataParameters) => SimpleTransactionRequest; } export default setPrimaryName; //# sourceMappingURL=setPrimaryName.d.ts.map