import { IFCT } from "..";
import { BatchMultiSigCall } from "../batchMultiSigCall";
import { Call } from "../batchMultiSigCall/classes";
export declare class FCTMulticall {
    private readonly _FCT;
    constructor(FCT: BatchMultiSigCall);
    /**
     * Compress the whole FCT into one multicall
     * @note Function will throw an error if it is not possible
     */
    compressFCTInMulticall({ multiCallV2Address, multiCallV2ENS, sender, strictGasLimits, }: {
        multiCallV2Address?: string;
        multiCallV2ENS?: string;
        sender: string;
        strictGasLimits?: boolean;
    }): Promise<IFCT>;
    calculateGasPerCall({ call, slotsChanged, totalSlots, varArgsStart, varArgsEnd, }: {
        call: Call;
        slotsChanged: number;
        totalSlots: number;
        varArgsStart: number;
        varArgsEnd: number;
    }): bigint;
    /**
     * Compress the whole FCT into one multicall
     * @note Function will throw an error if it is not possible
     */
    static compressFCTInMulticall({ FCT, sender, multiCallV2Address, multiCallV2ENS, strictGasLimits, }: {
        FCT: BatchMultiSigCall;
        sender: string;
        multiCallV2Address?: string;
        multiCallV2ENS?: string;
        strictGasLimits?: boolean;
    }): Promise<IFCT>;
}
//# sourceMappingURL=index.d.ts.map