export type Address = `0x${string}`; export type Adapter = 'uniswap-v3-rwa-1' | 'uniswap-v3-nvda-1' | 'hookr-v4-1'; export interface ExecutionPolicy {version:1;wallet:Address;allowedAssets:Address[];allowedAdapters:Adapter[];maxInputWei:string;maxNetworkFeeWei:string;maxNetworkFeeBps:number;maxGas:string;maxSlippageBps:number;maxQuoteLossBps:number;maxLpFeePips:number;maxQuoteTakeBps:number;requireOfficialRwa:boolean;requireTwap:boolean;allowRecapture:boolean;allowSubjectBurn:boolean;deadlineSeconds:number} export interface ExecutionIntent {routeId:string;wallet:Address;outputAsset:Address;amountInWei:string;minimumOut:string;minimumShareUnits:string} export interface ExecutionTransaction {chainId:4663;from:Address;to:Address;data:`0x${string}`;value:string;gas:string;nonce:string;maxFeePerGas:string;maxPriorityFeePerGas:string} export interface ExecutionReceipt {payload:Record;signature:string} export interface Evaluation {decision:'within_policy'|'block'|'review';reasons:{id:string;message:string}[];receipt:ExecutionReceipt|null;[key:string]:unknown} export interface Candidate {routeId:string;adapter:Adapter;eligible:boolean;intent?:ExecutionIntent;transaction?:ExecutionTransaction;reasons:{id:string;message:string}[];[key:string]:unknown} export function policyTemplate(name:'rwa'|'allowlist',wallet:Address,assets?:Address[]):ExecutionPolicy; export function normalizePolicy(policy:ExecutionPolicy):ExecutionPolicy; export function createExecutionClient(options:{operatorPolicy:ExecutionPolicy;baseUrl?:string;fetchImpl?:typeof fetch}):Readonly<{prepare(input:{outputAsset:Address;amountInWei:string}):Promise<{policy:ExecutionPolicy;candidates:Candidate[];selectedRouteId:string|null;notice:string}>;evaluate(input:{intent:ExecutionIntent;transaction:ExecutionTransaction}):Promise;revalidate(input:{intent:ExecutionIntent;transaction:ExecutionTransaction;receipt:ExecutionReceipt}):Promise}>; export function verifyExecutionReceipt(receipt:ExecutionReceipt,options:{publicKey:JsonWebKey;policy:ExecutionPolicy;intent:ExecutionIntent;transaction:ExecutionTransaction;evaluation?:Evaluation;now?:number}):Promise>; export function createExecutionSigner(options:{account:{address:Address;signTransaction:(transaction:{type:'eip1559';chainId:4663;to:Address;data:`0x${string}`;value:bigint;gas:bigint;nonce:number;maxFeePerGas:bigint;maxPriorityFeePerGas:bigint})=>Promise<`0x${string}`>};operatorPolicy:ExecutionPolicy;operatorIntent:ExecutionIntent;publicKey:JsonWebKey;baseUrl?:string;fetchImpl?:typeof fetch}):Readonly<{sign(transaction:ExecutionTransaction):Promise<{serializedTransaction:`0x${string}`;receipt:ExecutionReceipt;transaction:ExecutionTransaction}>}>; export function getExecutionCoverage(options?:{baseUrl?:string;fetchImpl?:typeof fetch}):Promise<{version:string;chainId:4663;routes:{id:string;adapter:Adapter;symbol:string;asset:Address;officialRwa:boolean;twap:boolean;fee:number|null;observer:string}[];coverage:string}>;