import { MiningApi } from '@dodoex/api';
import BigNumber from 'bignumber.js';
import { BaseMiningI, MyCreatedMiningI, ReviewedMiningRewardTokenI, TabMiningI } from '../types';
export type RewardTokenInfosParameters = {
    endBlock: string;
    rewardPerBlock: string;
    rewardToken: string;
    startBlock: string;
};
type MiningListQueryListItem = ElementType<NonNullable<NonNullable<ReturnType<Exclude<(typeof MiningApi.graphql.fetchMiningListV1)['__apiType'], undefined>>['mining_list']>['list']>>;
export declare const manualStopMiningList: Record<string, [
    blockNumber: string,
    timestamp: string
]>;
export declare function transformRawMiningToBaseMining(obj: MiningListQueryListItem): BaseMiningI | null;
export declare function transformRawMiningToTabMining(obj: MiningListQueryListItem): TabMiningI | null;
export declare function transformStrToBN(raw: any, decimals: number | undefined): BigNumber | undefined;
export declare function transformRawMiningToMyCreatedMining(obj: ElementType<NonNullable<NonNullable<ReturnType<Exclude<(typeof MiningApi.graphql.fetchMyCreatedMiningList)['__apiType'], undefined>>['mining_list']>['list']>>): MyCreatedMiningI | null;
export declare function getStakeTokenAPR({ chainId, rewardPerBlock, rewardTokenUSDPrice, totalStakedTokenUSD, }: {
    chainId: number;
    rewardPerBlock: BigNumber | undefined;
    rewardTokenUSDPrice: BigNumber | undefined;
    totalStakedTokenUSD: BigNumber | undefined;
}): BigNumber | undefined;
export declare function getReserveForMining({ balance, totalSupply, reserve, }: {
    balance: BigNumber | undefined;
    totalSupply: BigNumber | undefined;
    reserve: BigNumber | undefined;
}): BigNumber | undefined;
export declare function getVaultReserveForMining({ baseStakeTokenBalance, quoteStakeTokenBalance, baseStakeTokenTotalSupply, quoteStakeTokenTotalSupply, baseTokenReserve, quoteTokenReserve, midPrice, baseTokenUSD, quoteTokenUSD, }: {
    baseStakeTokenBalance?: BigNumber;
    quoteStakeTokenBalance?: BigNumber;
    baseStakeTokenTotalSupply?: BigNumber;
    quoteStakeTokenTotalSupply?: BigNumber;
    baseTokenReserve?: BigNumber;
    quoteTokenReserve?: BigNumber;
    midPrice?: BigNumber;
    baseTokenUSD?: BigNumber;
    quoteTokenUSD?: BigNumber;
}): {
    baseReserveForMining: BigNumber | undefined;
    quoteReserveForMining: BigNumber | undefined;
    baseReserveForMiningUSD: BigNumber | undefined;
    quoteReserveForMiningUSD: BigNumber | undefined;
    totalStakedTokenUSD: BigNumber | undefined;
    totalStakedTokenWithoutMidPriceUSD: BigNumber | undefined;
};
export declare function computeUnreleasedRewardByBlock({ blockNumber, lastFlagBlock, endBlock, decimals, rewardPerBlock, }: {
    blockNumber: BigNumber;
    lastFlagBlock: BigNumber;
    endBlock: BigNumber;
    decimals: number;
    rewardPerBlock: BigNumber;
}): BigNumber;
export declare function getV3MiningSingleRewardAmount(t: ReviewedMiningRewardTokenI, blockNumber: BigNumber, blockTime: number, decimals: number | undefined): {
    totalReward: BigNumber | null;
    dailyReward: BigNumber | null;
    releasedReward: BigNumber | null;
    unreleasedReward: BigNumber | null;
    workThroughReward: BigNumber | undefined;
    lastFlagBlock: BigNumber | undefined;
    rewardVault: string | undefined;
    rewardPerBlock: BigNumber | undefined;
    startBlock: BigNumber | undefined;
    endBlock: BigNumber | undefined;
    startTime: BigNumber | undefined;
    endTime: BigNumber | undefined;
};
export {};
