/** * ERC-7751 H3 Routing — On-Chain Agent Discovery via H3 Geospatial Index * * USE CASE * -------- * IoT / edge-AI platforms need to hire the nearest available agent. * H3 hexagonal grid cells (like Uber's pricing zones) are stored on-chain so * any smart contract can enforce "local-first" agent selection. * * Typical flow: * 1. Agent calls registerAgent(h3Index, quicEndpoint, capabilities, kineticScore) * → pays 1 % registration bond, stored on-chain permanently. * 2. App calls discoverAgents(capability, minScore, limit) * → returns filtered list sorted by kineticScore. * 3. When agent retires, calls deregisterAgent() → 99 % bond refunded. */ import { ethers } from 'ethers'; export interface AgentRecord { wallet: string; h3Index: string; quicEndpoint: string; capabilities: string[]; kineticScore: bigint; bondNet: bigint; registeredAt: number; } export interface DiscoverOptions { /** bytes32 capability identifier, e.g. ethers.id('GPT4') */ capability: string; /** Minimum Kinetic Score (0–10000) */ minScore: number; /** Max agents to return */ limit?: number; } export declare class H3RoutingClient { private contract; constructor(address: string, signerOrProvider: ethers.Signer | ethers.Provider); /** * Register an agent with H3 location and capabilities. * Bond amount = grossAmount (1% fee, 99% stored as refundable bond). * * @example * await client.register({ * h3Index: ethers.id('8928308280fffff'), // H3 cell for Istanbul * quicEndpoint: 'quic://agent.example.com:4433', * capabilities: [ethers.id('GPT4'), ethers.id('ImageGen')], * kineticScore: 9000, * bondGross: ethers.parseEther('0.01'), // 1% goes to treasury * }); */ register(opts: { h3Index: string; quicEndpoint: string; capabilities: string[]; kineticScore: number; bondGross: bigint; }): Promise; /** Deregister and refund 99 % of bond */ deregister(): Promise; /** Discover agents by capability and minimum score */ discover(opts: DiscoverOptions): Promise; /** Fetch full agent record */ getAgent(wallet: string): Promise; } //# sourceMappingURL=ERC7751H3RoutingClient.d.ts.map