import { type PublicClient, type Chain, type Transport } from 'viem'; import { type AzethContractAddresses, type CatalogEntry } from '@azeth/common'; import type { AzethSmartAccountClient } from '../utils/userop.js'; export interface RegisterParams { name: string; description: string; entityType: 'agent' | 'service' | 'infrastructure'; capabilities: string[]; endpoint?: string; pricing?: string; catalog?: CatalogEntry[]; } export interface RegisterResult { tokenId: bigint; txHash: `0x${string}`; } /** Build a data: URI from registration parameters */ export declare function buildAgentURI(params: RegisterParams): string; /** Register on the ERC-8004 trust registry via the TrustRegistryModule. * * Routes the call through the smart account so msg.sender = smart account address. * The TrustRegistryModule checks _initialized[msg.sender], which is only true for * the smart account — NOT the EOA. Using the smart account client ensures the * module recognizes the caller. */ export declare function registerOnRegistry(publicClient: PublicClient, smartAccountClient: AzethSmartAccountClient, addresses: AzethContractAddresses, account: `0x${string}`, params: RegisterParams): Promise; /** Update metadata for a registered account. * * Routes the call through the smart account so msg.sender = smart account address. * The contract expects `value` as bytes. This function accepts a string * for convenience and encodes it as hex-encoded UTF-8 bytes. */ export declare function updateMetadata(publicClient: PublicClient, smartAccountClient: AzethSmartAccountClient, addresses: AzethContractAddresses, account: `0x${string}`, key: string, value: string): Promise<`0x${string}`>; export interface MetadataUpdate { key: string; value: string; } /** Update multiple metadata fields. * * v1.3 LIMITATION — sequential, NOT atomic: the deployed GuardianModule cannot * validate CALLTYPE_BATCH UserOperations. Its calldata decoder returns the * type(uint256).max "force guardian" sentinel for batch mode, and the guardian * co-sign check then compares that same sentinel against guardianMaxTxAmountUSD — * no signature can ever satisfy it, so every batch UserOp fails AA24 (co-signed * or not). Until a future module version decodes batch items individually, each * key-value pair is sent as its own single-call UserOp in order. If update N * fails, updates 1..N-1 have already landed. */ export declare function updateMetadataBatch(publicClient: PublicClient, smartAccountClient: AzethSmartAccountClient, addresses: AzethContractAddresses, account: `0x${string}`, updates: MetadataUpdate[]): Promise<`0x${string}`>; //# sourceMappingURL=register.d.ts.map