import { PopulatedTransaction } from 'ethers';
import { CrossCollateralRouter } from '@hyperlane-xyz/core';
import { Address, Domain, Numberish } from '@hyperlane-xyz/utils';
import type { MultiProviderAdapter } from '../../providers/MultiProviderAdapter.js';
import { ChainName } from '../../types.js';
import { InterchainGasQuote, TransferRemoteToParams } from './ITokenAdapter.js';
import { EvmHypCollateralAdapter } from './EvmTokenAdapter.js';
/**
 * Adapter for CrossCollateralRouter routers.
 * Supports transferRemoteTo for both cross-chain and same-chain transfers.
 */
export declare class EvmHypCrossCollateralAdapter extends EvmHypCollateralAdapter {
    readonly chainName: ChainName;
    readonly multiProvider: MultiProviderAdapter;
    readonly addresses: {
        token: Address;
        collateralToken?: Address;
    };
    readonly crossCollateralContract: CrossCollateralRouter;
    constructor(chainName: ChainName, multiProvider: MultiProviderAdapter, addresses: {
        token: Address;
        collateralToken?: Address;
    });
    /**
     * Populate cross-chain transfer to a specific target router.
     */
    private quoteTransferRemoteToRaw;
    populateTransferRemoteToTx(params: TransferRemoteToParams): Promise<PopulatedTransaction>;
    /**
     * Quote fees for transferRemoteTo.
     */
    quoteTransferRemoteToGas(params: {
        destination: Domain;
        recipient: Address;
        amount: Numberish;
        targetRouter: Address;
    }): Promise<InterchainGasQuote>;
}
//# sourceMappingURL=EvmCrossCollateralAdapter.d.ts.map