import { IToken, Web3WalletProvider } from "@cryptovarna/tron-web-api";
import { Contract, ethers } from "ethers";
import { contract } from "../contract";
import { ICurrentStakesBox } from "./fe_interfaces/CurrentStakesBox/ICurrentStakesBox";
import { IHistoryBox, IHistoryRow } from "./fe_interfaces/HistoryBox/IHistoryBox";
import { StakeType } from "./fe_interfaces/Interfaces/IStakeType";
import { IStakingBox } from "./fe_interfaces/StakingBox/IStakingBox";
export declare class StakeFactory {
    static getInstances(_wallet: ethers.Signer, _contracts: contract[]): Promise<Contract[]>;
    static getStakingBox(_contracts: contract[], _wallet: Web3WalletProvider): Promise<IStakingBox>;
    static getAllCurrentStakes(_contract: contract, _wallet: Web3WalletProvider, _block?: number): Promise<{
        stakes: ICurrentStakesBox;
    }>;
    static getHistoryBox(_contract: contract, _wallet: Web3WalletProvider, _block?: number): Promise<{
        box: IHistoryBox;
        block: number;
    }>;
    static getHistoryRows(_contract: contract, _wallet: Web3WalletProvider, _minBlock?: number, _maxBlock?: number, _minTimestamp?: number, _maxTimeStamp?: number, _filter?: StakeType[], _ignoreOwner?: boolean, _ignoreSort?: boolean): Promise<{
        rows: IHistoryRow[];
        stableToken: IToken;
        nativetoken: IToken;
    }>;
    static exportHistoryRows(rows: IHistoryRow[], nativeLabel?: string): Promise<any>;
    static tokenPriceHistory(contract: contract, wallet: Web3WalletProvider, dateStart: Date, dateEnd: Date): Promise<{
        token: IToken;
        stableToken: IToken;
        ratios: {
            date: Date;
            ratio: number;
        }[];
    }>;
}
