import { ContractTransactionResponse, Overrides } from 'ethers';
import { Address, FinalizeL1DepositParams, TransactionLike } from '../types';
import { Wallet } from '../wallet';
import { IDepositTransaction, IWithdrawTransaction, AbstractBridge } from './abstractBridge';
/**
 * `USDCBridge` is an implementation of the AbstractBridge class which provides methods
 * for depositing and withdrawing USDC tokens using Custom USDC Bridge that can be found here:
 * https://github.com/matter-labs/usdc-bridge
 */
export declare class USDCBridge extends AbstractBridge {
    constructor(wallet: Wallet);
    protected validateDepositParams(transaction: IDepositTransaction): Promise<void>;
    protected getSecondBridgeDepositCalldata(transaction: IDepositTransaction): Promise<string>;
    protected validateWithdrawParams(transaction: IWithdrawTransaction): Promise<void>;
    protected populateWithdrawTransaction(tx: IWithdrawTransaction): Promise<TransactionLike>;
    protected finalizeL1Deposit(bridgeAddress: Address, finalizeParams: FinalizeL1DepositParams, overrides?: Overrides): Promise<ContractTransactionResponse>;
    protected checkIfWithdrawalIsFinalized(bridgeAddress: Address, finalizeParams: FinalizeL1DepositParams): Promise<boolean>;
}
