import type { Account, Address, Chain, Client, Hash, Transport, WriteContractErrorType } from 'viem'; import type { Prettify, WriteTransactionParameters } from '../../../../types/index.js'; import { type ClientWithOverridesErrorType } from '../../../../utils/clientWithOverrides.js'; export type DeleteSubnamesWriteParametersParameters = { /** The parent registry address */ registryAddress: Address; /** The labels of the subnames to delete */ labels: string[]; }; export type DeleteSubnamesParameters = Prettify>; export type DeleteSubnamesReturnType = Hash[]; export type DeleteSubnamesErrorType = ClientWithOverridesErrorType | WriteContractErrorType; /** * Deletes multiple subnames by calling `unregister()` for each one on the parent registry. * * In ENSv2 there is no batch unregister — each subname requires a separate * `unregister()` call. This function sends them sequentially (each tx is awaited * before the next is signed) and returns their hashes in input order. The caller * must have ROLE_UNREGISTER on each name's resource or on ROOT_RESOURCE. * * For REGISTERED names this burns the ERC1155 token and invalidates roles; * RESERVED names are unregistered without a burn. In both cases the name becomes * AVAILABLE. Resolver records, linked subregistries, and deeper subnames are not * cleaned up automatically. * * @param client - {@link Client} * @param parameters - {@link DeleteSubnamesParameters} * @returns Array of transaction hashes. {@link DeleteSubnamesReturnType} * * @example * import { createWalletClient, custom } from 'viem' * import { mainnet } from 'viem/chains' * import { deleteSubnames } from '@ensdomains/ensjs/wallet/v2' * * const [account] = await window.ethereum.request({ method: 'eth_requestAccounts' }) * const wallet = createWalletClient({ * account, * chain: mainnet, * transport: custom(window.ethereum), * }) * const hashes = await deleteSubnames(wallet, { * registryAddress: '0x...', // parent registry * labels: ['sub1', 'sub2', 'sub3'], * }) * // ['0x...', '0x...', '0x...'] */ export declare function deleteSubnames(client: Client, { registryAddress, labels, ...txArgs }: DeleteSubnamesParameters): Promise; //# sourceMappingURL=deleteSubnames.d.ts.map