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'; import { type ResolverSetterScope } from '../../../../utils/v2/roles/resolverResource.js'; import { type ResolverRole } from '../../../../utils/v2/roles/resolverRoles.js'; type BaseParameters = { /** The resolver address */ resolverAddress: Address; /** The account to revoke roles from */ targetAccount: Address; }; export type RevokeResolverRolesRootParameters = BaseParameters & { /** Revoke roles held on the root resource */ scope: 'root'; /** The resolver roles to revoke */ roles: ResolverRole[]; }; export type RevokeResolverRolesSetterParameters = BaseParameters & { /** Revoke the setter's role for a single argument */ scope: 'setter'; /** The setter argument the role was scoped to */ setter: ResolverSetterScope; }; export type RevokeResolverRolesResourceParameters = BaseParameters & { /** Revoke roles on a raw EAC resource (for resources read from events) */ scope: 'resource'; /** The EAC resource the roles are held on */ resource: bigint; /** The resolver roles to revoke */ roles: ResolverRole[]; }; export type RevokeResolverRolesBaseParameters = RevokeResolverRolesRootParameters | RevokeResolverRolesSetterParameters | RevokeResolverRolesResourceParameters; export type RevokeResolverRolesReturnType = Hash; export type RevokeResolverRolesErrorType = WriteContractErrorType | ClientWithOverridesErrorType; export declare const revokeResolverRolesWriteParameters: (client: Client, params: RevokeResolverRolesBaseParameters) => { readonly abi: readonly [{ readonly name: "revokeRootRoles"; readonly type: "function"; readonly stateMutability: "nonpayable"; readonly inputs: readonly [{ readonly name: "roleBitmap"; readonly type: "uint256"; }, { readonly name: "account"; readonly type: "address"; }]; readonly outputs: readonly [{ readonly name: ""; readonly type: "bool"; }]; }]; readonly functionName: "revokeRootRoles"; readonly args: readonly [bigint, `0x${string}`]; readonly address: `0x${string}`; readonly chain: chain; readonly account: account; } | { readonly abi: readonly [{ readonly name: "revokeRoles"; readonly type: "function"; readonly stateMutability: "nonpayable"; readonly inputs: readonly [{ readonly name: "resource"; readonly type: "uint256"; }, { readonly name: "roleBitmap"; readonly type: "uint256"; }, { readonly name: "account"; readonly type: "address"; }]; readonly outputs: readonly [{ readonly name: ""; readonly type: "bool"; }]; }]; readonly functionName: "revokeRoles"; readonly args: readonly [bigint, bigint, `0x${string}`]; readonly address: `0x${string}`; readonly chain: chain; readonly account: account; }; export type RevokeResolverRolesParameters = Prettify>; /** * Revoke roles on a PermissionedResolver (V2). * * - **`'root'`**: revoke roles held on the root resource. * - **`'setter'`**: revoke the setter's role for one argument (mirror of the * `'setter'` grant); the resource is computed from the argument. * - **`'resource'`**: revoke roles on a raw EAC resource, for callers that * read the resource from `EACRolesChanged` events. * * The caller must hold the admin variant of each role on root or on the * resource. * * @param client - Wallet client * @param parameters - {@link RevokeResolverRolesParameters} * @returns Transaction hash. {@link RevokeResolverRolesReturnType} * * @example * // Revoke roles globally * const hash = await revokeResolverRoles(walletClient, { * resolverAddress: '0x...', * targetAccount: '0xOTHER', * scope: 'root', * roles: ['ROLE_LINK'], * }) * * @example * // Revoke ROLE_SET_TEXT for the `avatar` key * const hash = await revokeResolverRoles(walletClient, { * resolverAddress: '0x...', * targetAccount: '0xOTHER', * scope: 'setter', * setter: { kind: 'text', key: 'avatar' }, * }) */ export declare function revokeResolverRoles(client: Client, params: RevokeResolverRolesParameters): Promise; export {}; //# sourceMappingURL=revokeResolverRoles.d.ts.map