import type { BlockTag } from "ethers";
import { Interface, JsonRpcProvider } from "ethers";
import { AddressAsIf } from "./ethers-override/index.js";
export declare const erc20Interface: Interface;
export declare const multicallInterface: Interface;
export declare const multicallDeployedCode: string;
export declare const getGasForCalldata: (calldata: string) => bigint;
export declare class SettlementSimulation {
    static from(blockTag: BlockTag): SettlementSimulation;
    private _ledgerState;
    private _provider;
    constructor(blockTag: BlockTag);
    connect(provider: JsonRpcProvider): SettlementSimulation;
    runAsync(senderAddress: string, routerAddress: string, tokenProxyAddress: string | undefined, inputTokenAddress: string, outputTokenAddress: string, amountIn: bigint, wrapInput: boolean, upwrapOutput: boolean, calldata: string, otherAsIfs?: AddressAsIf[]): Promise<{
        gas: bigint;
        amountOut: bigint;
    }>;
}
