import { Algodv2, Account, Transaction } from "algosdk";
import AlgofiUser from "./../algofiUser";
import V1StakingClient from "./v1_stakingClient";
import V1StakingConfig from "./v1_stakingConfig";
export default class V1Staking {
    algod: Algodv2;
    stakingClient: V1StakingClient;
    managerAppId: number;
    marketAppId: number;
    oracleAppId: number;
    managerAddress: string;
    marketAddress: string;
    assetId: number;
    latestTime: number;
    totalStaked: number;
    rewardsProgramNumber: number;
    rewardsCoefficient: number;
    rewardsAmount: number;
    rewardsAssetId: number;
    rewardsPerSecond: number;
    rewardsSecondaryAssetId: number;
    rewardsSecondaryRatio: number;
    constructor(algod: Algodv2, stakingClient: V1StakingClient, stakingConfig: V1StakingConfig);
    loadState(): Promise<void>;
    getOptInTxns(user: AlgofiUser, storageAccount: Account): Promise<Transaction[]>;
    getPreambleTxns(user: AlgofiUser): Promise<Transaction[]>;
    getStakeTxns(user: AlgofiUser, amount: number): Promise<Transaction[]>;
    getUnstakeTxns(user: AlgofiUser, amount: number): Promise<Transaction[]>;
    getClaimTxns(user: AlgofiUser): Promise<Transaction[]>;
}
