import { ethers, Signer } from "ethers"; export declare enum ChainId { Ethereum = 1, Sepolia = 11155111, ArbitrumOne = 42161, ArbitrumSepolia = 421614 } export declare enum ChainDomain { Ethereum = 0, ArbitrumOne = 3 } export type CCTPSupportedChainId = ChainId.Ethereum | ChainId.Sepolia | ChainId.ArbitrumOne | ChainId.ArbitrumSepolia; type Contracts = { tokenMessengerContractAddress: string; targetChainDomain: ChainDomain; sourceChainDomain: ChainDomain; targetChainId: CCTPSupportedChainId; usdcContractAddress: string; messageTransmitterContractAddress: string; attestationApiUrl: string; tokenMinterContractAddress: string; }; export type MessageSent = { attestationHash: string; blockNumber: string; blockTimestamp: string; id: string; message: string; nonce: string; sender: string; recipient: string; sourceDomain: `${ChainDomain}`; transactionHash: string; amount: string; }; export declare const CommonAddress: { readonly Ethereum: { readonly USDC: "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"; readonly tokenMessengerContractAddress: "0xbd3fa81b58ba92a82136038b25adec7066af3155"; }; readonly ArbitrumOne: { readonly USDC: "0xaf88d065e77c8cc2239327c5edb3a432268e5831"; readonly 'USDC.e': "0xff970a61a04b1ca14834a43f5de4533ebddb5cc8"; readonly tokenMessengerContractAddress: "0x19330d10d9cc8751218eaf51e8885d058642e08a"; readonly CU: "0x89c49a3fa372920ac23ce757a029e6936c0b8e02"; }; readonly Sepolia: { readonly USDC: "0x1c7d4b196cb0c7b01d743fbc6116a902379c7238"; readonly tokenMessengerContractAddress: "0x9f3B8679c73C2Fef8b59B4f3444d4e156fb70AA5"; }; readonly ArbitrumSepolia: { readonly USDC: "0x75faf114eafb1bdbe2f0316df893fd58ce46aa4d"; readonly 'USDC.e': "0x119f0e6303bec7021b295ecab27a4a1a5b37ecf0"; readonly tokenMessengerContractAddress: "0x9f3B8679c73C2Fef8b59B4f3444d4e156fb70AA5"; }; }; export declare const chainIdToUSDC: (chainId: number) => string | null; export type AttestationResponse = { attestation: string; status: 'complete'; } | { attestation: null; status: 'pending_confirmations'; }; export declare function getCctpContracts({ originChainId }: { originChainId?: ChainId; }): Contracts; export declare function fetchPerMessageBurnLimit({ originChainId, originProvider }: { originChainId: CCTPSupportedChainId; originProvider: ethers.providers.Provider; }): any; export declare const getCctpUtils: ({ originChainId }: { originChainId?: number; }) => { receiveMessage: ({ messageBytes, attestation, destinationSigner }: { messageBytes: string; attestation: string; destinationSigner: Signer; }) => Promise; fetchAttestation: (attestationHash: string) => Promise; waitForAttestation: (attestationHash: string) => Promise; fetchMessages: (transactionHash: string) => Promise; checkNonce: ({ nonce, destinationProvider }: { nonce: string; destinationProvider: ethers.providers.Provider; }) => Promise; }; export declare const isTokenMainnetUSDC: (tokenAddress: string | undefined) => boolean; export declare const isTokenSepoliaUSDC: (tokenAddress: string | undefined) => boolean; export declare const isTokenArbitrumOneNativeUSDC: (tokenAddress: string | undefined | null) => boolean; export declare const isTokenArbitrumSepoliaNativeUSDC: (tokenAddress: string | undefined) => boolean; export declare const isTokenNativeUSDC: (tokenAddress: string | undefined) => boolean; export declare const isCctp: (chainId: number, contractAddress: string) => boolean; export declare const isNativeUSDC: (chainId: number, tokenAddress: string) => boolean; export declare const hashSourceAndNonce: (source: number, nonce: number) => string; export {};