import BigNumber from 'bignumber.js';
import { useSubmission } from '../../../hooks/Submission';
import { CompositeMiningContractDataI, MiningWithContractDataI, TabMiningI } from '../types';
export declare const EARN_MINING_DETAIL_ID = "earn-mining-detail";
export declare const EARN_MINING_CREATE_AREA = "earn-mining-create-area";
export declare const EARN_MINING_OPERATE_AREA = "earn-mining-operate-area";
export declare const MINING_OPERATE_EXPIRED_TIME = 180;
export declare function isUnexpiredTx(submitTime: number): boolean;
export declare function isJoinedMining({ contractData, miningMinings, }: {
    miningMinings: TabMiningI['miningMinings'];
    contractData: CompositeMiningContractDataI | undefined;
}): boolean;
export declare function isMyStakedLoading({ id, miningMinings, requests, balanceDataMap, }: {
    id: TabMiningI['id'];
    miningMinings: TabMiningI['miningMinings'];
    requests: ReturnType<typeof useSubmission>['requests'];
    balanceDataMap: Map<string, MiningWithContractDataI>;
}): boolean;
export declare function isJoinedOrStakedProcessing({ miningItem, contractDataMap, othersChainContractDataMap, requests, }: {
    miningItem: TabMiningI;
    contractDataMap: Map<string, CompositeMiningContractDataI>;
    othersChainContractDataMap: Map<string, CompositeMiningContractDataI>;
    requests: ReturnType<typeof useSubmission>['requests'];
}): boolean;
export declare function formatApr(apr?: BigNumber): string;
export declare function formatDate(time: number | null): string;
export declare function getOperateAreaWrapperEle(): HTMLElement;
export declare function getDetailWrapperEle(): HTMLElement;
export declare function hideExistedNode(ele: HTMLElement): void;
export declare function showExistedNode(ele: HTMLElement): void;
export declare function generateMiningDetailUrl({ chainId, miningContractAddress, stakeTokenAddress, }: {
    chainId?: number;
    miningContractAddress: string | undefined;
    stakeTokenAddress: string | undefined;
}): string;
export declare function computeEndTimestampByEndBlock({ endTime, endBlock, targetEndBlock, blockTime, }: {
    endTime: BigNumber;
    endBlock: BigNumber;
    targetEndBlock: BigNumber;
    blockTime: number;
}): number;
