import { BigNumber, Contract, ethers } from "ethers";
import { MerkleTree } from "@across-protocol/contracts/dist/utils/MerkleTree";
export declare function getParamType(contractName: string, functionName: string, paramName: string): Promise<ethers.utils.ParamType | string>;
export declare function buildRelayerRefundTree(relayerRefundLeaves: {
    leafId: BigNumber;
    chainId: BigNumber;
    amountToReturn: BigNumber;
    l2TokenAddress: string;
    refundAddresses: string[];
    refundAmounts: BigNumber[];
}[]): Promise<MerkleTree<unknown>>;
export declare function buildRelayerRefundLeaves(destinationChainIds: number[], amountsToReturn: BigNumber[], l2Tokens: string[], refundAddresses: string[][], refundAmounts: BigNumber[][]): {
    leafId: BigNumber;
    chainId: BigNumber;
    amountToReturn: BigNumber;
    l2TokenAddress: string;
    refundAddresses: string[];
    refundAmounts: BigNumber[];
}[];
export declare function buildPoolRebalanceLeafTree(poolRebalanceLeaves: {
    leafId: BigNumber;
    chainId: BigNumber;
    groupIndex: BigNumber;
    bundleLpFees: BigNumber[];
    netSendAmounts: BigNumber[];
    runningBalances: BigNumber[];
    l1Tokens: string[];
}[]): Promise<MerkleTree<unknown>>;
export declare function buildPoolRebalanceLeaves(destinationChainIds: number[], l1Tokens: string[][], bundleLpFees: BigNumber[][], netSendAmounts: BigNumber[][], runningBalances: BigNumber[][], groupIndex: number[]): {
    leafId: BigNumber;
    chainId: BigNumber;
    groupIndex: BigNumber;
    bundleLpFees: BigNumber[];
    netSendAmounts: BigNumber[];
    runningBalances: BigNumber[];
    l1Tokens: string[];
}[];
export declare function buildSlowRelayTree(slowFills: unknown[]): Promise<MerkleTree<unknown>>;
export declare function buildV3SlowRelayTree(slowFills: unknown[]): Promise<MerkleTree<unknown>>;
export declare function constructSingleRelayerRefundTree(l2Token: Contract | string, destinationChainId: number, amount?: BigNumber): Promise<{
    leaves: {
        leafId: BigNumber;
        chainId: BigNumber;
        amountToReturn: BigNumber;
        l2TokenAddress: string;
        refundAddresses: string[];
        refundAmounts: BigNumber[];
    }[];
    tree: MerkleTree<unknown>;
}>;
export declare function constructSingleChainTree(token: string, scalingSize?: number, repaymentChain?: number, decimals?: number): Promise<{
    tokensSendToL2: BigNumber;
    realizedLpFees: BigNumber;
    leaves: {
        leafId: BigNumber;
        chainId: BigNumber;
        groupIndex: BigNumber;
        bundleLpFees: BigNumber[];
        netSendAmounts: BigNumber[];
        runningBalances: BigNumber[];
        l1Tokens: string[];
    }[];
    tree: MerkleTree<unknown>;
}>;
