"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Stats__factory = void 0;
const ethers_1 = require("ethers");
const _abi = [
    {
        inputs: [
            {
                internalType: 'address',
                name: 'account',
                type: 'address',
            },
        ],
        name: 'pools',
        outputs: [
            {
                components: [
                    {
                        internalType: 'address',
                        name: 'vault',
                        type: 'address',
                    },
                    {
                        internalType: 'uint256',
                        name: 'balance',
                        type: 'uint256',
                    },
                    {
                        internalType: 'uint256',
                        name: 'deposits',
                        type: 'uint256',
                    },
                    {
                        internalType: 'uint256',
                        name: 'price',
                        type: 'uint256',
                    },
                    {
                        internalType: 'uint256',
                        name: 'allocPoint',
                        type: 'uint256',
                    },
                ],
                internalType: 'struct IStats.Pool[]',
                name: '',
                type: 'tuple[]',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'address',
                name: 'account',
                type: 'address',
            },
        ],
        name: 'vaults',
        outputs: [
            {
                components: [
                    {
                        internalType: 'address',
                        name: 'vault',
                        type: 'address',
                    },
                    {
                        internalType: 'address',
                        name: 'token',
                        type: 'address',
                    },
                    {
                        internalType: 'uint256',
                        name: 'apr',
                        type: 'uint256',
                    },
                    {
                        internalType: 'uint256',
                        name: 'balance',
                        type: 'uint256',
                    },
                    {
                        internalType: 'uint256',
                        name: 'totalDeposits',
                        type: 'uint256',
                    },
                    {
                        internalType: 'uint256',
                        name: 'accountDeposits',
                        type: 'uint256',
                    },
                    {
                        internalType: 'uint256',
                        name: 'totalRewards',
                        type: 'uint256',
                    },
                    {
                        internalType: 'uint256',
                        name: 'accountRewards',
                        type: 'uint256',
                    },
                    {
                        internalType: 'uint256',
                        name: 'depositTokenPrice',
                        type: 'uint256',
                    },
                    {
                        internalType: 'uint256',
                        name: 'rewardTokenPrice',
                        type: 'uint256',
                    },
                    {
                        internalType: 'uint256',
                        name: 'withdrawInterval',
                        type: 'uint256',
                    },
                    {
                        internalType: 'uint256',
                        name: 'withdrawFee',
                        type: 'uint256',
                    },
                    {
                        internalType: 'uint256',
                        name: 'accountWeights',
                        type: 'uint256',
                    },
                    {
                        internalType: 'uint256',
                        name: 'totalWeights',
                        type: 'uint256',
                    },
                    {
                        internalType: 'uint256',
                        name: 'lastDepositedTime',
                        type: 'uint256',
                    },
                    {
                        internalType: 'uint256',
                        name: 'lastDepositedAmount',
                        type: 'uint256',
                    },
                    {
                        internalType: 'uint256',
                        name: 'allocPoint',
                        type: 'uint256',
                    },
                    {
                        internalType: 'uint256',
                        name: 'rewards',
                        type: 'uint256',
                    },
                ],
                internalType: 'struct IStats.Vault[]',
                name: '',
                type: 'tuple[]',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'address',
                name: 'account',
                type: 'address',
            },
        ],
        name: 'summary',
        outputs: [
            {
                internalType: 'uint256',
                name: 'tvl',
                type: 'uint256',
            },
            {
                internalType: 'uint256',
                name: 'deposites',
                type: 'uint256',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'address',
                name: 'account',
                type: 'address',
            },
        ],
        name: 'balanceOf',
        outputs: [
            {
                internalType: 'uint256',
                name: 'bbtBalance',
                type: 'uint256',
            },
            {
                internalType: 'uint256',
                name: 'veBalance',
                type: 'uint256',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'address',
                name: 'account',
                type: 'address',
            },
        ],
        name: 'pendingRewards',
        outputs: [
            {
                internalType: 'uint256',
                name: 'amount',
                type: 'uint256',
            },
            {
                internalType: 'uint256',
                name: 'price',
                type: 'uint256',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'uint256',
                name: 'pid',
                type: 'uint256',
            },
            {
                internalType: 'uint256',
                name: 'bbt',
                type: 'uint256',
            },
            {
                internalType: 'uint256',
                name: 've',
                type: 'uint256',
            },
        ],
        name: 'getBoostFactor',
        outputs: [
            {
                internalType: 'uint256',
                name: 'boost',
                type: 'uint256',
            },
            {
                internalType: 'uint256',
                name: 'toMaxBoost',
                type: 'uint256',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'address',
                name: 'account',
                type: 'address',
            },
        ],
        name: 'stakeInfo',
        outputs: [
            {
                components: [
                    {
                        internalType: 'address',
                        name: 'token',
                        type: 'address',
                    },
                    {
                        internalType: 'uint256',
                        name: 'unlockTime',
                        type: 'uint256',
                    },
                    {
                        internalType: 'uint256',
                        name: 'accountLocked',
                        type: 'uint256',
                    },
                    {
                        internalType: 'uint256',
                        name: 'totalLocked',
                        type: 'uint256',
                    },
                    {
                        internalType: 'uint256',
                        name: 'totalSupply',
                        type: 'uint256',
                    },
                    {
                        internalType: 'uint256',
                        name: 'veBalance',
                        type: 'uint256',
                    },
                    {
                        internalType: 'uint256',
                        name: 'veTotalSupply',
                        type: 'uint256',
                    },
                    {
                        internalType: 'uint256',
                        name: 'tokenPrice',
                        type: 'uint256',
                    },
                ],
                internalType: 'struct IStats.Stake',
                name: '',
                type: 'tuple',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'address',
                name: 'account',
                type: 'address',
            },
        ],
        name: 'rebateInfo',
        outputs: [
            {
                components: [
                    {
                        internalType: 'uint256',
                        name: 'totalLocked',
                        type: 'uint256',
                    },
                    {
                        internalType: 'uint256',
                        name: 'weekToken0Amount',
                        type: 'uint256',
                    },
                    {
                        internalType: 'uint256',
                        name: 'weekToken1Amount',
                        type: 'uint256',
                    },
                    {
                        internalType: 'uint256',
                        name: 'lastToken0Amount',
                        type: 'uint256',
                    },
                    {
                        internalType: 'uint256',
                        name: 'lastToken1Amount',
                        type: 'uint256',
                    },
                    {
                        internalType: 'uint256',
                        name: 'claimableToken0Amount',
                        type: 'uint256',
                    },
                    {
                        internalType: 'uint256',
                        name: 'claimableToken1Amount',
                        type: 'uint256',
                    },
                    {
                        internalType: 'uint256',
                        name: 'claimableRate',
                        type: 'uint256',
                    },
                    {
                        internalType: 'uint256',
                        name: 'tokenPrice',
                        type: 'uint256',
                    },
                    {
                        internalType: 'uint256',
                        name: 'token0Price',
                        type: 'uint256',
                    },
                    {
                        internalType: 'uint256',
                        name: 'token1Price',
                        type: 'uint256',
                    },
                    {
                        internalType: 'string',
                        name: 'token0Name',
                        type: 'string',
                    },
                    {
                        internalType: 'string',
                        name: 'token1Name',
                        type: 'string',
                    },
                ],
                internalType: 'struct IStats.Rebate',
                name: '',
                type: 'tuple',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [],
        name: 'performanceFees',
        outputs: [
            {
                internalType: 'uint256',
                name: 'controllerFee',
                type: 'uint256',
            },
            {
                internalType: 'uint256',
                name: 'treasuryFee',
                type: 'uint256',
            },
            {
                internalType: 'uint256',
                name: 'rebateFee',
                type: 'uint256',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'address[]',
                name: '',
                type: 'address[]',
            },
        ],
        name: 'getTotalBalance',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
];
class Stats__factory {
    static createInterface() {
        return new ethers_1.utils.Interface(_abi);
    }
    static connect(address, signerOrProvider) {
        return new ethers_1.Contract(address, _abi, signerOrProvider);
    }
}
exports.Stats__factory = Stats__factory;
Stats__factory.abi = _abi;
//# sourceMappingURL=Stats__factory.js.map