import { BigNumber } from "ethers";
import { DepositWithBlock, FillWithBlock, TokenRunningBalance, UbaFlow } from "../../interfaces";
import { UBAActionType } from "../../UBAFeeCalculator/UBAFeeTypes";
import UBAConfig from "../../UBAFeeCalculator/UBAFeeConfig";
export declare type RequestValidReturnType = {
    valid: boolean;
    reason?: string;
    matchingFill?: FillWithBlock;
    matchingDeposit?: DepositWithBlock;
};
export declare type BalancingFeeReturnType = {
    balancingFee: BigNumber;
    actionType: UBAActionType;
};
export declare type SystemFeeResult = {
    lpFee: BigNumber;
    depositBalancingFee: BigNumber;
    systemFee: BigNumber;
};
export declare type RelayerFeeResult = {
    relayerBalancingFee: BigNumber;
};
export declare type ModifiedUBAFlow = {
    flow: UbaFlow;
    balancingFee: BigNumber;
    lpFee: BigNumber;
    runningBalance: BigNumber;
    incentiveBalance: BigNumber;
    netRunningBalanceAdjustment: BigNumber;
};
export declare type UBAClientState = {
    [chainId: number]: UBABundleTokenState;
};
export declare type UBABundleTokenState = {
    [tokenSymbol: string]: (UBABundleState & {
        bundleBlockRanges: number[][];
    })[];
};
export declare type UBABundleState = {
    flows: ModifiedUBAFlow[];
    ubaConfig: UBAConfig;
    openingBalances: TokenRunningBalance;
};
export declare type CachedUBABundleState = UBABundleState & {
    loadedFromCache: boolean;
};
export declare type SpokePoolFillFilter = {
    relayer?: string;
    fromBlock?: number;
    toBlock?: number;
    repaymentChainId?: number;
    isSlowRelay?: boolean;
    isCompleteFill?: boolean;
};
