import { type Address, Amount, type EthereumAddress, EthereumBridgeToken, type ExternalAddress, type ExternalTransactionResponse } from "../../../types/index.js"; import type { BridgeDepositOptions, CompleteBridgeWithdrawOptions, InitiateBridgeWithdrawOptions } from "../../../bridge/types/BridgeInterface.js"; import type { CCTPDepositFeeEstimation, CCTPInitiateWithdrawFeeEstimation, EthereumCompleteWithdrawFeeEstimation, EthereumWalletConfig } from "../../../bridge/index.js"; import { CCTPFees } from "../../../bridge/ethereum/cctp/CCTPFees.js"; import { EthereumBridge } from "../../../bridge/ethereum/EthereumBridge.js"; import type { Tx } from "../../../tx/index.js"; import type { WalletInterface } from "../../../wallet/index.js"; import { type StarkZapLogger } from "../../../logger/index.js"; export declare class CCTPBridge extends EthereumBridge { private readonly cctpFees; private static readonly MAINNET_TOKEN_MESSENGER; private static readonly SEPOLIA_TOKEN_MESSENGER; private static DEFAULT_CCTP_DEPOSIT_GAS; private static TOKEN_MESSENGER_INTERFACE; private static MESSAGE_TRANSMITTER_INTERFACE; private static readonly DUMMY_SN_ADDRESS; private static readonly ZERO_ETH; constructor(bridgeToken: EthereumBridgeToken, config: EthereumWalletConfig, starknetWallet: WalletInterface, logger: StarkZapLogger, cctpFees: CCTPFees); deposit(recipient: Address, amount: Amount, options?: BridgeDepositOptions): Promise; getDepositFeeEstimate(options?: BridgeDepositOptions): Promise; initiateWithdraw(recipient: EthereumAddress, amount: Amount, options?: InitiateBridgeWithdrawOptions): Promise; getInitiateWithdrawFeeEstimate(options?: InitiateBridgeWithdrawOptions): Promise; /** * @throws {Error} Message {@link CCTP_COMPLETE_WITHDRAW_OPTIONS_ERROR_MESSAGE} * when `options` is missing or not `{ protocol: "cctp", ... }` with attestation data. */ completeWithdraw(_recipient: ExternalAddress, _amount: Amount, options?: CompleteBridgeWithdrawOptions): Promise; /** * @throws {Error} Message {@link CCTP_COMPLETE_WITHDRAW_OPTIONS_ERROR_MESSAGE} * when options are missing or not valid CCTP completion options (needed to simulate * `receiveMessage`). */ getCompleteWithdrawFeeEstimate(_amount: Amount, _recipient: ExternalAddress, options?: CompleteBridgeWithdrawOptions): Promise; protected getAllowanceSpender(): Promise; protected getEthereumGasPrice(): Promise; private usdcAmount; private getL2Allowance; private buildL2ApproveCall; private buildDepositForBurnCall; private buildInitiateWithdrawCalls; private createDepositForBurnTransaction; private calculateMaxFee; private resolveCCTPInitiateOptions; private waitForReattestation; private requiresReattestation; } //# sourceMappingURL=CCTPBridge.d.ts.map