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 DeleteSubnameWriteParametersParameters = { /** The parent registry address that contains the subname */ registryAddress: Address; /** The label of the subname to delete (e.g. "sub" for sub.example.eth) */ label: string; }; export type DeleteSubnameWriteParametersReturnType = ReturnType; export declare const deleteSubnameWriteParameters: (client: Client, { registryAddress, label }: DeleteSubnameWriteParametersParameters) => { readonly address: `0x${string}`; readonly abi: readonly [{ readonly type: "function"; readonly name: "unregister"; readonly inputs: readonly [{ readonly name: "anyId"; readonly type: "uint256"; }]; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; }]; readonly functionName: "unregister"; readonly args: readonly [bigint]; readonly chain: chain; readonly account: Account; }; export type DeleteSubnameParameters = Prettify>; export type DeleteSubnameReturnType = Hash; export type DeleteSubnameErrorType = ClientWithOverridesErrorType | WriteContractErrorType; /** * Deletes a subname by calling `unregister()` on the parent registry. * * In ENSv2, subnames are managed by their parent registry (PermissionedRegistry). * The caller must have ROLE_UNREGISTER on the name's resource or on ROOT_RESOURCE. * If the name is REGISTERED, this burns the ERC1155 token and invalidates all * roles on its resource (via an `eacVersionId` + `tokenVersionId` bump). * If the name is RESERVED, no burn or version bump occurs. In both cases the * name becomes AVAILABLE immediately. * * Note: unregistering does not clear resolver records, the linked subregistry, * or any deeper subnames — those must be cleaned up separately. * * @param client - {@link Client} * @param parameters - {@link DeleteSubnameParameters} * @returns Transaction hash. {@link DeleteSubnameReturnType} * * @example * import { createWalletClient, custom } from 'viem' * import { mainnet } from 'viem/chains' * import { deleteSubname } 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 hash = await deleteSubname(wallet, { * registryAddress: '0x...', // parent registry (e.g. example.eth's UserRegistry) * label: 'sub', // deletes sub.example.eth * }) * // 0x... */ export declare function deleteSubname(client: Client, { registryAddress, label, ...txArgs }: DeleteSubnameParameters): Promise; //# sourceMappingURL=deleteSubname.d.ts.map