import { MerkleTree } from "@across-protocol/contracts/dist/utils/MerkleTree";
import { RunningBalances, PoolRebalanceLeaf, Clients, SpokePoolTargetBalance } from "../../../interfaces";
import { SpokePoolClient } from "../../SpokePoolClient";
import { BigNumber } from "../../../utils";
import { HubPoolClient } from "../../HubPoolClient";
import { V3DepositWithBlock } from "./shims";
import { AcrossConfigStoreClient } from "../../AcrossConfigStoreClient";
export type PoolRebalanceRoot = {
    runningBalances: RunningBalances;
    realizedLpFees: RunningBalances;
    leaves: PoolRebalanceLeaf[];
    tree: MerkleTree<PoolRebalanceLeaf>;
};
export declare function getWidestPossibleExpectedBlockRange(chainIds: number[], spokeClients: {
    [chainId: number]: SpokePoolClient;
}, endBlockBuffers: number[], clients: Clients, latestMainnetBlock: number, enabledChains: number[], optimistic?: boolean): Promise<number[][]>;
export declare function isChainDisabled(blockRangeForChain: number[]): boolean;
export declare function computeDesiredTransferAmountToSpoke(runningBalance: BigNumber, spokePoolTargetBalance: SpokePoolTargetBalance): BigNumber;
export declare function getNetSendAmountForL1Token(spokePoolTargetBalance: SpokePoolTargetBalance, runningBalance: BigNumber): BigNumber;
export declare function getRunningBalanceForL1Token(spokePoolTargetBalance: SpokePoolTargetBalance, runningBalance: BigNumber): BigNumber;
export declare function updateRunningBalance(runningBalances: RunningBalances, l2ChainId: number, l1Token: string, updateAmount: BigNumber): void;
export declare function addLastRunningBalance(latestMainnetBlock: number, runningBalances: RunningBalances, hubPoolClient: HubPoolClient): void;
export declare function updateRunningBalanceForDeposit(runningBalances: RunningBalances, hubPoolClient: HubPoolClient, deposit: V3DepositWithBlock, updateAmount: BigNumber, mainnetBundleEndBlock: number): void;
export declare function constructPoolRebalanceLeaves(latestMainnetBlock: number, runningBalances: RunningBalances, realizedLpFees: RunningBalances, chainsWithRefundsOnly: number[], configStoreClient: AcrossConfigStoreClient, maxL1TokenCount?: number): PoolRebalanceLeaf[];
//# sourceMappingURL=PoolRebalanceUtils.d.ts.map