import { type Address, type Hex } from 'viem'; import type { Permit2ClaimPolicy } from '../../../../types'; /** Typed representation of the Permit2 message fields used for calldata building */ export interface Permit2ClaimMessage { permitted: readonly { token: Address; amount: bigint; }[]; spender: Address; nonce: bigint; deadline: bigint; mandate: { target: { recipient: Address; tokenOut: readonly { token: Address; amount: bigint; }[]; targetChain: bigint; fillExpiry: bigint; }; minGas: bigint; originOps: { vt: Hex; ops: readonly { to: Address; value: bigint; data: Hex; }[]; }; destOps: { vt: Hex; ops: readonly { to: Address; value: bigint; data: Hex; }[]; }; q: Hex; }; } /** * Builds the policySpecificData calldata for a Permit2ClaimPolicy EIP-1271 check. * * Format (derived from Permit2ClaimPolicy.sol calldata layout): * Header: [spender:20][nonce:32][deadline:32] * TokenIn: expanded [count:1][token:32][amount:32]... OR pre-computed hash [32] * Mandate: if any target check enabled — expanded target + minGas:16 + ops hashes + q * else — pre-computed mandateHash [32] * */ export declare function buildPermit2ClaimPolicyCalldata(policy: Permit2ClaimPolicy, message: Permit2ClaimMessage): Hex; export declare const PERMIT2_CLAIM_POLICY_ADDRESS: Address; export declare function encodePermit2ClaimPolicyInitData(policy: Permit2ClaimPolicy): Hex; //# sourceMappingURL=permit2.d.ts.map