import type { TypedEventFilter, TypedEvent, TypedListener, OnEvent, PromiseOrValue } from "../../common";
import type { FunctionFragment, Result, EventFragment } from "@ethersproject/abi";
import type { Listener, Provider } from "@ethersproject/providers";
import type { BaseContract, BigNumber, BigNumberish, BytesLike, CallOverrides, ContractTransaction, Overrides, PopulatedTransaction, Signer, utils } from "ethers";
export declare namespace IPrime {
    type APRInfoStruct = {
        supplyAPR: PromiseOrValue<BigNumberish>;
        borrowAPR: PromiseOrValue<BigNumberish>;
        totalScore: PromiseOrValue<BigNumberish>;
        userScore: PromiseOrValue<BigNumberish>;
        xvsBalanceForScore: PromiseOrValue<BigNumberish>;
        capital: PromiseOrValue<BigNumberish>;
        cappedSupply: PromiseOrValue<BigNumberish>;
        cappedBorrow: PromiseOrValue<BigNumberish>;
        supplyCapUSD: PromiseOrValue<BigNumberish>;
        borrowCapUSD: PromiseOrValue<BigNumberish>;
    };
    type APRInfoStructOutput = [
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber
    ] & {
        supplyAPR: BigNumber;
        borrowAPR: BigNumber;
        totalScore: BigNumber;
        userScore: BigNumber;
        xvsBalanceForScore: BigNumber;
        capital: BigNumber;
        cappedSupply: BigNumber;
        cappedBorrow: BigNumber;
        supplyCapUSD: BigNumber;
        borrowCapUSD: BigNumber;
    };
}
export declare namespace PrimeStorageV1 {
    type PendingRewardStruct = {
        vToken: PromiseOrValue<string>;
        rewardToken: PromiseOrValue<string>;
        amount: PromiseOrValue<BigNumberish>;
    };
    type PendingRewardStructOutput = [string, string, BigNumber] & {
        vToken: string;
        rewardToken: string;
        amount: BigNumber;
    };
}
export interface PrimeScenarioInterface extends utils.Interface {
    functions: {
        "MAXIMUM_XVS_CAP()": FunctionFragment;
        "MINIMUM_STAKED_XVS()": FunctionFragment;
        "NATIVE_MARKET()": FunctionFragment;
        "STAKING_PERIOD()": FunctionFragment;
        "WRAPPED_NATIVE_TOKEN()": FunctionFragment;
        "acceptOwnership()": FunctionFragment;
        "accessControlManager()": FunctionFragment;
        "accrueInterest(address)": FunctionFragment;
        "accrueInterestAndUpdateScore(address,address)": FunctionFragment;
        "addMarket(address,address,uint256,uint256)": FunctionFragment;
        "alphaDenominator()": FunctionFragment;
        "alphaNumerator()": FunctionFragment;
        "blocksOrSecondsPerYear()": FunctionFragment;
        "burn(address)": FunctionFragment;
        "burnForUser(address)": FunctionFragment;
        "calculateAPR(address,address)": FunctionFragment;
        "calculateScore(uint256,uint256)": FunctionFragment;
        "claim()": FunctionFragment;
        "claimInterest(address)": FunctionFragment;
        "claimInterest(address,address)": FunctionFragment;
        "claimTimeRemaining(address)": FunctionFragment;
        "comptroller()": FunctionFragment;
        "estimateAPR(address,address,uint256,uint256,uint256)": FunctionFragment;
        "getAllMarkets()": FunctionFragment;
        "getBlockNumberOrTimestamp()": FunctionFragment;
        "getInterestAccrued(address,address)": FunctionFragment;
        "getPendingRewards(address)": FunctionFragment;
        "incomeDistributionYearly(address)": FunctionFragment;
        "initialize(address,address,uint256,uint128,uint128,address,address,address,address,uint256)": FunctionFragment;
        "initializeV2(address)": FunctionFragment;
        "interests(address,address)": FunctionFragment;
        "irrevocableLimit()": FunctionFragment;
        "isScoreUpdated(uint256,address)": FunctionFragment;
        "isTimeBased()": FunctionFragment;
        "isUserPrimeHolder(address)": FunctionFragment;
        "issue(bool,address[])": FunctionFragment;
        "markets(address)": FunctionFragment;
        "maxLoopsLimit()": FunctionFragment;
        "mintForUser(address)": FunctionFragment;
        "nextScoreUpdateRoundId()": FunctionFragment;
        "oracle()": FunctionFragment;
        "owner()": FunctionFragment;
        "paused()": FunctionFragment;
        "pendingOwner()": FunctionFragment;
        "pendingScoreUpdates()": FunctionFragment;
        "poolRegistry()": FunctionFragment;
        "primeLiquidityProvider()": FunctionFragment;
        "renounceOwnership()": FunctionFragment;
        "revocableLimit()": FunctionFragment;
        "setAccessControlManager(address)": FunctionFragment;
        "setLimit(uint256,uint256)": FunctionFragment;
        "setMaxLoopsLimit(uint256)": FunctionFragment;
        "setPLP(address)": FunctionFragment;
        "setStakedAt(address[],uint256[])": FunctionFragment;
        "stakedAt(address)": FunctionFragment;
        "togglePause()": FunctionFragment;
        "tokens(address)": FunctionFragment;
        "totalIrrevocable()": FunctionFragment;
        "totalRevocable()": FunctionFragment;
        "totalScoreUpdatesRequired()": FunctionFragment;
        "transferOwnership(address)": FunctionFragment;
        "unreleasedPLPIncome(address)": FunctionFragment;
        "updateAlpha(uint128,uint128)": FunctionFragment;
        "updateMultipliers(address,uint256,uint256)": FunctionFragment;
        "updateScores(address[])": FunctionFragment;
        "vTokenForAsset(address)": FunctionFragment;
        "xvsUpdated(address)": FunctionFragment;
        "xvsVault()": FunctionFragment;
        "xvsVaultPoolId()": FunctionFragment;
        "xvsVaultRewardToken()": FunctionFragment;
    };
    getFunction(nameOrSignatureOrTopic: "MAXIMUM_XVS_CAP" | "MINIMUM_STAKED_XVS" | "NATIVE_MARKET" | "STAKING_PERIOD" | "WRAPPED_NATIVE_TOKEN" | "acceptOwnership" | "accessControlManager" | "accrueInterest" | "accrueInterestAndUpdateScore" | "addMarket" | "alphaDenominator" | "alphaNumerator" | "blocksOrSecondsPerYear" | "burn" | "burnForUser" | "calculateAPR" | "calculateScore" | "claim" | "claimInterest(address)" | "claimInterest(address,address)" | "claimTimeRemaining" | "comptroller" | "estimateAPR" | "getAllMarkets" | "getBlockNumberOrTimestamp" | "getInterestAccrued" | "getPendingRewards" | "incomeDistributionYearly" | "initialize" | "initializeV2" | "interests" | "irrevocableLimit" | "isScoreUpdated" | "isTimeBased" | "isUserPrimeHolder" | "issue" | "markets" | "maxLoopsLimit" | "mintForUser" | "nextScoreUpdateRoundId" | "oracle" | "owner" | "paused" | "pendingOwner" | "pendingScoreUpdates" | "poolRegistry" | "primeLiquidityProvider" | "renounceOwnership" | "revocableLimit" | "setAccessControlManager" | "setLimit" | "setMaxLoopsLimit" | "setPLP" | "setStakedAt" | "stakedAt" | "togglePause" | "tokens" | "totalIrrevocable" | "totalRevocable" | "totalScoreUpdatesRequired" | "transferOwnership" | "unreleasedPLPIncome" | "updateAlpha" | "updateMultipliers" | "updateScores" | "vTokenForAsset" | "xvsUpdated" | "xvsVault" | "xvsVaultPoolId" | "xvsVaultRewardToken"): FunctionFragment;
    encodeFunctionData(functionFragment: "MAXIMUM_XVS_CAP", values?: undefined): string;
    encodeFunctionData(functionFragment: "MINIMUM_STAKED_XVS", values?: undefined): string;
    encodeFunctionData(functionFragment: "NATIVE_MARKET", values?: undefined): string;
    encodeFunctionData(functionFragment: "STAKING_PERIOD", values?: undefined): string;
    encodeFunctionData(functionFragment: "WRAPPED_NATIVE_TOKEN", values?: undefined): string;
    encodeFunctionData(functionFragment: "acceptOwnership", values?: undefined): string;
    encodeFunctionData(functionFragment: "accessControlManager", values?: undefined): string;
    encodeFunctionData(functionFragment: "accrueInterest", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "accrueInterestAndUpdateScore", values: [PromiseOrValue<string>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "addMarket", values: [
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: "alphaDenominator", values?: undefined): string;
    encodeFunctionData(functionFragment: "alphaNumerator", values?: undefined): string;
    encodeFunctionData(functionFragment: "blocksOrSecondsPerYear", values?: undefined): string;
    encodeFunctionData(functionFragment: "burn", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "burnForUser", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "calculateAPR", values: [PromiseOrValue<string>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "calculateScore", values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "claim", values?: undefined): string;
    encodeFunctionData(functionFragment: "claimInterest(address)", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "claimInterest(address,address)", values: [PromiseOrValue<string>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "claimTimeRemaining", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "comptroller", values?: undefined): string;
    encodeFunctionData(functionFragment: "estimateAPR", values: [
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: "getAllMarkets", values?: undefined): string;
    encodeFunctionData(functionFragment: "getBlockNumberOrTimestamp", values?: undefined): string;
    encodeFunctionData(functionFragment: "getInterestAccrued", values: [PromiseOrValue<string>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "getPendingRewards", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "incomeDistributionYearly", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "initialize", values: [
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: "initializeV2", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "interests", values: [PromiseOrValue<string>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "irrevocableLimit", values?: undefined): string;
    encodeFunctionData(functionFragment: "isScoreUpdated", values: [PromiseOrValue<BigNumberish>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "isTimeBased", values?: undefined): string;
    encodeFunctionData(functionFragment: "isUserPrimeHolder", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "issue", values: [PromiseOrValue<boolean>, PromiseOrValue<string>[]]): string;
    encodeFunctionData(functionFragment: "markets", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "maxLoopsLimit", values?: undefined): string;
    encodeFunctionData(functionFragment: "mintForUser", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "nextScoreUpdateRoundId", values?: undefined): string;
    encodeFunctionData(functionFragment: "oracle", values?: undefined): string;
    encodeFunctionData(functionFragment: "owner", values?: undefined): string;
    encodeFunctionData(functionFragment: "paused", values?: undefined): string;
    encodeFunctionData(functionFragment: "pendingOwner", values?: undefined): string;
    encodeFunctionData(functionFragment: "pendingScoreUpdates", values?: undefined): string;
    encodeFunctionData(functionFragment: "poolRegistry", values?: undefined): string;
    encodeFunctionData(functionFragment: "primeLiquidityProvider", values?: undefined): string;
    encodeFunctionData(functionFragment: "renounceOwnership", values?: undefined): string;
    encodeFunctionData(functionFragment: "revocableLimit", values?: undefined): string;
    encodeFunctionData(functionFragment: "setAccessControlManager", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "setLimit", values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "setMaxLoopsLimit", values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "setPLP", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "setStakedAt", values: [PromiseOrValue<string>[], PromiseOrValue<BigNumberish>[]]): string;
    encodeFunctionData(functionFragment: "stakedAt", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "togglePause", values?: undefined): string;
    encodeFunctionData(functionFragment: "tokens", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "totalIrrevocable", values?: undefined): string;
    encodeFunctionData(functionFragment: "totalRevocable", values?: undefined): string;
    encodeFunctionData(functionFragment: "totalScoreUpdatesRequired", values?: undefined): string;
    encodeFunctionData(functionFragment: "transferOwnership", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "unreleasedPLPIncome", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "updateAlpha", values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "updateMultipliers", values: [
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: "updateScores", values: [PromiseOrValue<string>[]]): string;
    encodeFunctionData(functionFragment: "vTokenForAsset", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "xvsUpdated", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "xvsVault", values?: undefined): string;
    encodeFunctionData(functionFragment: "xvsVaultPoolId", values?: undefined): string;
    encodeFunctionData(functionFragment: "xvsVaultRewardToken", values?: undefined): string;
    decodeFunctionResult(functionFragment: "MAXIMUM_XVS_CAP", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "MINIMUM_STAKED_XVS", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "NATIVE_MARKET", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "STAKING_PERIOD", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "WRAPPED_NATIVE_TOKEN", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "acceptOwnership", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "accessControlManager", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "accrueInterest", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "accrueInterestAndUpdateScore", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "addMarket", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "alphaDenominator", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "alphaNumerator", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "blocksOrSecondsPerYear", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "burn", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "burnForUser", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "calculateAPR", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "calculateScore", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "claim", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "claimInterest(address)", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "claimInterest(address,address)", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "claimTimeRemaining", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "comptroller", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "estimateAPR", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getAllMarkets", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getBlockNumberOrTimestamp", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getInterestAccrued", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getPendingRewards", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "incomeDistributionYearly", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "initialize", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "initializeV2", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "interests", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "irrevocableLimit", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "isScoreUpdated", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "isTimeBased", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "isUserPrimeHolder", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "issue", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "markets", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "maxLoopsLimit", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "mintForUser", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "nextScoreUpdateRoundId", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "oracle", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "paused", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "pendingOwner", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "pendingScoreUpdates", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "poolRegistry", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "primeLiquidityProvider", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "renounceOwnership", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "revocableLimit", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setAccessControlManager", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setLimit", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setMaxLoopsLimit", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setPLP", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setStakedAt", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "stakedAt", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "togglePause", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "tokens", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "totalIrrevocable", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "totalRevocable", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "totalScoreUpdatesRequired", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "transferOwnership", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "unreleasedPLPIncome", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "updateAlpha", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "updateMultipliers", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "updateScores", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "vTokenForAsset", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "xvsUpdated", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "xvsVault", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "xvsVaultPoolId", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "xvsVaultRewardToken", data: BytesLike): Result;
    events: {
        "AlphaUpdated(uint128,uint128,uint128,uint128)": EventFragment;
        "Burn(address)": EventFragment;
        "Initialized(uint8)": EventFragment;
        "InterestClaimed(address,address,uint256)": EventFragment;
        "MarketAdded(address,address,uint256,uint256)": EventFragment;
        "MaxLoopsLimitUpdated(uint256,uint256)": EventFragment;
        "Mint(address,bool)": EventFragment;
        "MintLimitsUpdated(uint256,uint256,uint256,uint256)": EventFragment;
        "MultiplierUpdated(address,uint256,uint256,uint256,uint256)": EventFragment;
        "NewAccessControlManager(address,address)": EventFragment;
        "OwnershipTransferStarted(address,address)": EventFragment;
        "OwnershipTransferred(address,address)": EventFragment;
        "Paused(address)": EventFragment;
        "StakedAtUpdated(address,uint256)": EventFragment;
        "TokenUpgraded(address)": EventFragment;
        "Unpaused(address)": EventFragment;
        "UserScoreUpdated(address)": EventFragment;
    };
    getEvent(nameOrSignatureOrTopic: "AlphaUpdated"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "Burn"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "Initialized"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "InterestClaimed"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "MarketAdded"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "MaxLoopsLimitUpdated"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "Mint"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "MintLimitsUpdated"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "MultiplierUpdated"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "NewAccessControlManager"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "OwnershipTransferStarted"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "OwnershipTransferred"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "Paused"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "StakedAtUpdated"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "TokenUpgraded"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "Unpaused"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "UserScoreUpdated"): EventFragment;
}
export interface AlphaUpdatedEventObject {
    oldNumerator: BigNumber;
    oldDenominator: BigNumber;
    newNumerator: BigNumber;
    newDenominator: BigNumber;
}
export type AlphaUpdatedEvent = TypedEvent<[
    BigNumber,
    BigNumber,
    BigNumber,
    BigNumber
], AlphaUpdatedEventObject>;
export type AlphaUpdatedEventFilter = TypedEventFilter<AlphaUpdatedEvent>;
export interface BurnEventObject {
    user: string;
}
export type BurnEvent = TypedEvent<[string], BurnEventObject>;
export type BurnEventFilter = TypedEventFilter<BurnEvent>;
export interface InitializedEventObject {
    version: number;
}
export type InitializedEvent = TypedEvent<[number], InitializedEventObject>;
export type InitializedEventFilter = TypedEventFilter<InitializedEvent>;
export interface InterestClaimedEventObject {
    user: string;
    market: string;
    amount: BigNumber;
}
export type InterestClaimedEvent = TypedEvent<[
    string,
    string,
    BigNumber
], InterestClaimedEventObject>;
export type InterestClaimedEventFilter = TypedEventFilter<InterestClaimedEvent>;
export interface MarketAddedEventObject {
    comptroller: string;
    market: string;
    supplyMultiplier: BigNumber;
    borrowMultiplier: BigNumber;
}
export type MarketAddedEvent = TypedEvent<[
    string,
    string,
    BigNumber,
    BigNumber
], MarketAddedEventObject>;
export type MarketAddedEventFilter = TypedEventFilter<MarketAddedEvent>;
export interface MaxLoopsLimitUpdatedEventObject {
    oldMaxLoopsLimit: BigNumber;
    newmaxLoopsLimit: BigNumber;
}
export type MaxLoopsLimitUpdatedEvent = TypedEvent<[
    BigNumber,
    BigNumber
], MaxLoopsLimitUpdatedEventObject>;
export type MaxLoopsLimitUpdatedEventFilter = TypedEventFilter<MaxLoopsLimitUpdatedEvent>;
export interface MintEventObject {
    user: string;
    isIrrevocable: boolean;
}
export type MintEvent = TypedEvent<[string, boolean], MintEventObject>;
export type MintEventFilter = TypedEventFilter<MintEvent>;
export interface MintLimitsUpdatedEventObject {
    oldIrrevocableLimit: BigNumber;
    oldRevocableLimit: BigNumber;
    newIrrevocableLimit: BigNumber;
    newRevocableLimit: BigNumber;
}
export type MintLimitsUpdatedEvent = TypedEvent<[
    BigNumber,
    BigNumber,
    BigNumber,
    BigNumber
], MintLimitsUpdatedEventObject>;
export type MintLimitsUpdatedEventFilter = TypedEventFilter<MintLimitsUpdatedEvent>;
export interface MultiplierUpdatedEventObject {
    market: string;
    oldSupplyMultiplier: BigNumber;
    oldBorrowMultiplier: BigNumber;
    newSupplyMultiplier: BigNumber;
    newBorrowMultiplier: BigNumber;
}
export type MultiplierUpdatedEvent = TypedEvent<[
    string,
    BigNumber,
    BigNumber,
    BigNumber,
    BigNumber
], MultiplierUpdatedEventObject>;
export type MultiplierUpdatedEventFilter = TypedEventFilter<MultiplierUpdatedEvent>;
export interface NewAccessControlManagerEventObject {
    oldAccessControlManager: string;
    newAccessControlManager: string;
}
export type NewAccessControlManagerEvent = TypedEvent<[
    string,
    string
], NewAccessControlManagerEventObject>;
export type NewAccessControlManagerEventFilter = TypedEventFilter<NewAccessControlManagerEvent>;
export interface OwnershipTransferStartedEventObject {
    previousOwner: string;
    newOwner: string;
}
export type OwnershipTransferStartedEvent = TypedEvent<[
    string,
    string
], OwnershipTransferStartedEventObject>;
export type OwnershipTransferStartedEventFilter = TypedEventFilter<OwnershipTransferStartedEvent>;
export interface OwnershipTransferredEventObject {
    previousOwner: string;
    newOwner: string;
}
export type OwnershipTransferredEvent = TypedEvent<[
    string,
    string
], OwnershipTransferredEventObject>;
export type OwnershipTransferredEventFilter = TypedEventFilter<OwnershipTransferredEvent>;
export interface PausedEventObject {
    account: string;
}
export type PausedEvent = TypedEvent<[string], PausedEventObject>;
export type PausedEventFilter = TypedEventFilter<PausedEvent>;
export interface StakedAtUpdatedEventObject {
    user: string;
    timestamp: BigNumber;
}
export type StakedAtUpdatedEvent = TypedEvent<[
    string,
    BigNumber
], StakedAtUpdatedEventObject>;
export type StakedAtUpdatedEventFilter = TypedEventFilter<StakedAtUpdatedEvent>;
export interface TokenUpgradedEventObject {
    user: string;
}
export type TokenUpgradedEvent = TypedEvent<[string], TokenUpgradedEventObject>;
export type TokenUpgradedEventFilter = TypedEventFilter<TokenUpgradedEvent>;
export interface UnpausedEventObject {
    account: string;
}
export type UnpausedEvent = TypedEvent<[string], UnpausedEventObject>;
export type UnpausedEventFilter = TypedEventFilter<UnpausedEvent>;
export interface UserScoreUpdatedEventObject {
    user: string;
}
export type UserScoreUpdatedEvent = TypedEvent<[
    string
], UserScoreUpdatedEventObject>;
export type UserScoreUpdatedEventFilter = TypedEventFilter<UserScoreUpdatedEvent>;
export interface PrimeScenario extends BaseContract {
    connect(signerOrProvider: Signer | Provider | string): this;
    attach(addressOrName: string): this;
    deployed(): Promise<this>;
    interface: PrimeScenarioInterface;
    queryFilter<TEvent extends TypedEvent>(event: TypedEventFilter<TEvent>, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TEvent>>;
    listeners<TEvent extends TypedEvent>(eventFilter?: TypedEventFilter<TEvent>): Array<TypedListener<TEvent>>;
    listeners(eventName?: string): Array<Listener>;
    removeAllListeners<TEvent extends TypedEvent>(eventFilter: TypedEventFilter<TEvent>): this;
    removeAllListeners(eventName?: string): this;
    off: OnEvent<this>;
    on: OnEvent<this>;
    once: OnEvent<this>;
    removeListener: OnEvent<this>;
    functions: {
        MAXIMUM_XVS_CAP(overrides?: CallOverrides): Promise<[BigNumber]>;
        MINIMUM_STAKED_XVS(overrides?: CallOverrides): Promise<[BigNumber]>;
        NATIVE_MARKET(overrides?: CallOverrides): Promise<[string]>;
        STAKING_PERIOD(overrides?: CallOverrides): Promise<[BigNumber]>;
        WRAPPED_NATIVE_TOKEN(overrides?: CallOverrides): Promise<[string]>;
        acceptOwnership(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        accessControlManager(overrides?: CallOverrides): Promise<[string]>;
        accrueInterest(vToken: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        accrueInterestAndUpdateScore(user: PromiseOrValue<string>, market: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        addMarket(comptroller: PromiseOrValue<string>, market: PromiseOrValue<string>, supplyMultiplier: PromiseOrValue<BigNumberish>, borrowMultiplier: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        alphaDenominator(overrides?: CallOverrides): Promise<[BigNumber]>;
        alphaNumerator(overrides?: CallOverrides): Promise<[BigNumber]>;
        blocksOrSecondsPerYear(overrides?: CallOverrides): Promise<[BigNumber]>;
        burn(user: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        burnForUser(user: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        calculateAPR(market: PromiseOrValue<string>, user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            IPrime.APRInfoStructOutput
        ] & {
            aprInfo: IPrime.APRInfoStructOutput;
        }>;
        calculateScore(xvs: PromiseOrValue<BigNumberish>, capital: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        claim(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        "claimInterest(address)"(vToken: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        "claimInterest(address,address)"(vToken: PromiseOrValue<string>, user: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        claimTimeRemaining(user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        comptroller(overrides?: CallOverrides): Promise<[string]>;
        estimateAPR(market: PromiseOrValue<string>, user: PromiseOrValue<string>, borrow: PromiseOrValue<BigNumberish>, supply: PromiseOrValue<BigNumberish>, xvsStaked: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
            IPrime.APRInfoStructOutput
        ] & {
            aprInfo: IPrime.APRInfoStructOutput;
        }>;
        getAllMarkets(overrides?: CallOverrides): Promise<[string[]]>;
        getBlockNumberOrTimestamp(overrides?: CallOverrides): Promise<[BigNumber]>;
        getInterestAccrued(vToken: PromiseOrValue<string>, user: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        getPendingRewards(user: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        incomeDistributionYearly(vToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber] & {
            amount: BigNumber;
        }>;
        initialize(xvsVault_: PromiseOrValue<string>, xvsVaultRewardToken_: PromiseOrValue<string>, xvsVaultPoolId_: PromiseOrValue<BigNumberish>, alphaNumerator_: PromiseOrValue<BigNumberish>, alphaDenominator_: PromiseOrValue<BigNumberish>, accessControlManager_: PromiseOrValue<string>, primeLiquidityProvider_: PromiseOrValue<string>, comptroller_: PromiseOrValue<string>, oracle_: PromiseOrValue<string>, loopsLimit_: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        initializeV2(poolRegistry_: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        interests(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            accrued: BigNumber;
            score: BigNumber;
            rewardIndex: BigNumber;
        }>;
        irrevocableLimit(overrides?: CallOverrides): Promise<[BigNumber]>;
        isScoreUpdated(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[boolean]>;
        isTimeBased(overrides?: CallOverrides): Promise<[boolean]>;
        isUserPrimeHolder(user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[boolean]>;
        issue(isIrrevocable: PromiseOrValue<boolean>, users: PromiseOrValue<string>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        markets(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber,
            boolean
        ] & {
            supplyMultiplier: BigNumber;
            borrowMultiplier: BigNumber;
            rewardIndex: BigNumber;
            sumOfMembersScore: BigNumber;
            exists: boolean;
        }>;
        maxLoopsLimit(overrides?: CallOverrides): Promise<[BigNumber]>;
        mintForUser(user: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        nextScoreUpdateRoundId(overrides?: CallOverrides): Promise<[BigNumber]>;
        oracle(overrides?: CallOverrides): Promise<[string]>;
        owner(overrides?: CallOverrides): Promise<[string]>;
        paused(overrides?: CallOverrides): Promise<[boolean]>;
        pendingOwner(overrides?: CallOverrides): Promise<[string]>;
        pendingScoreUpdates(overrides?: CallOverrides): Promise<[BigNumber]>;
        poolRegistry(overrides?: CallOverrides): Promise<[string]>;
        primeLiquidityProvider(overrides?: CallOverrides): Promise<[string]>;
        renounceOwnership(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        revocableLimit(overrides?: CallOverrides): Promise<[BigNumber]>;
        setAccessControlManager(accessControlManager_: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setLimit(_irrevocableLimit: PromiseOrValue<BigNumberish>, _revocableLimit: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setMaxLoopsLimit(loopsLimit: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setPLP(plp: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setStakedAt(users: PromiseOrValue<string>[], timestamps: PromiseOrValue<BigNumberish>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        stakedAt(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        togglePause(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        tokens(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            boolean,
            boolean
        ] & {
            exists: boolean;
            isIrrevocable: boolean;
        }>;
        totalIrrevocable(overrides?: CallOverrides): Promise<[BigNumber]>;
        totalRevocable(overrides?: CallOverrides): Promise<[BigNumber]>;
        totalScoreUpdatesRequired(overrides?: CallOverrides): Promise<[BigNumber]>;
        transferOwnership(newOwner: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        unreleasedPLPIncome(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        updateAlpha(_alphaNumerator: PromiseOrValue<BigNumberish>, _alphaDenominator: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        updateMultipliers(market: PromiseOrValue<string>, supplyMultiplier: PromiseOrValue<BigNumberish>, borrowMultiplier: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        updateScores(users: PromiseOrValue<string>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        vTokenForAsset(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[string]>;
        xvsUpdated(user: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        xvsVault(overrides?: CallOverrides): Promise<[string]>;
        xvsVaultPoolId(overrides?: CallOverrides): Promise<[BigNumber]>;
        xvsVaultRewardToken(overrides?: CallOverrides): Promise<[string]>;
    };
    MAXIMUM_XVS_CAP(overrides?: CallOverrides): Promise<BigNumber>;
    MINIMUM_STAKED_XVS(overrides?: CallOverrides): Promise<BigNumber>;
    NATIVE_MARKET(overrides?: CallOverrides): Promise<string>;
    STAKING_PERIOD(overrides?: CallOverrides): Promise<BigNumber>;
    WRAPPED_NATIVE_TOKEN(overrides?: CallOverrides): Promise<string>;
    acceptOwnership(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    accessControlManager(overrides?: CallOverrides): Promise<string>;
    accrueInterest(vToken: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    accrueInterestAndUpdateScore(user: PromiseOrValue<string>, market: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    addMarket(comptroller: PromiseOrValue<string>, market: PromiseOrValue<string>, supplyMultiplier: PromiseOrValue<BigNumberish>, borrowMultiplier: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    alphaDenominator(overrides?: CallOverrides): Promise<BigNumber>;
    alphaNumerator(overrides?: CallOverrides): Promise<BigNumber>;
    blocksOrSecondsPerYear(overrides?: CallOverrides): Promise<BigNumber>;
    burn(user: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    burnForUser(user: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    calculateAPR(market: PromiseOrValue<string>, user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<IPrime.APRInfoStructOutput>;
    calculateScore(xvs: PromiseOrValue<BigNumberish>, capital: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    claim(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    "claimInterest(address)"(vToken: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    "claimInterest(address,address)"(vToken: PromiseOrValue<string>, user: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    claimTimeRemaining(user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    comptroller(overrides?: CallOverrides): Promise<string>;
    estimateAPR(market: PromiseOrValue<string>, user: PromiseOrValue<string>, borrow: PromiseOrValue<BigNumberish>, supply: PromiseOrValue<BigNumberish>, xvsStaked: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<IPrime.APRInfoStructOutput>;
    getAllMarkets(overrides?: CallOverrides): Promise<string[]>;
    getBlockNumberOrTimestamp(overrides?: CallOverrides): Promise<BigNumber>;
    getInterestAccrued(vToken: PromiseOrValue<string>, user: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    getPendingRewards(user: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    incomeDistributionYearly(vToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    initialize(xvsVault_: PromiseOrValue<string>, xvsVaultRewardToken_: PromiseOrValue<string>, xvsVaultPoolId_: PromiseOrValue<BigNumberish>, alphaNumerator_: PromiseOrValue<BigNumberish>, alphaDenominator_: PromiseOrValue<BigNumberish>, accessControlManager_: PromiseOrValue<string>, primeLiquidityProvider_: PromiseOrValue<string>, comptroller_: PromiseOrValue<string>, oracle_: PromiseOrValue<string>, loopsLimit_: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    initializeV2(poolRegistry_: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    interests(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
        BigNumber,
        BigNumber,
        BigNumber
    ] & {
        accrued: BigNumber;
        score: BigNumber;
        rewardIndex: BigNumber;
    }>;
    irrevocableLimit(overrides?: CallOverrides): Promise<BigNumber>;
    isScoreUpdated(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
    isTimeBased(overrides?: CallOverrides): Promise<boolean>;
    isUserPrimeHolder(user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
    issue(isIrrevocable: PromiseOrValue<boolean>, users: PromiseOrValue<string>[], overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    markets(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber,
        boolean
    ] & {
        supplyMultiplier: BigNumber;
        borrowMultiplier: BigNumber;
        rewardIndex: BigNumber;
        sumOfMembersScore: BigNumber;
        exists: boolean;
    }>;
    maxLoopsLimit(overrides?: CallOverrides): Promise<BigNumber>;
    mintForUser(user: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    nextScoreUpdateRoundId(overrides?: CallOverrides): Promise<BigNumber>;
    oracle(overrides?: CallOverrides): Promise<string>;
    owner(overrides?: CallOverrides): Promise<string>;
    paused(overrides?: CallOverrides): Promise<boolean>;
    pendingOwner(overrides?: CallOverrides): Promise<string>;
    pendingScoreUpdates(overrides?: CallOverrides): Promise<BigNumber>;
    poolRegistry(overrides?: CallOverrides): Promise<string>;
    primeLiquidityProvider(overrides?: CallOverrides): Promise<string>;
    renounceOwnership(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    revocableLimit(overrides?: CallOverrides): Promise<BigNumber>;
    setAccessControlManager(accessControlManager_: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setLimit(_irrevocableLimit: PromiseOrValue<BigNumberish>, _revocableLimit: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setMaxLoopsLimit(loopsLimit: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setPLP(plp: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setStakedAt(users: PromiseOrValue<string>[], timestamps: PromiseOrValue<BigNumberish>[], overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    stakedAt(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    togglePause(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    tokens(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[boolean, boolean] & {
        exists: boolean;
        isIrrevocable: boolean;
    }>;
    totalIrrevocable(overrides?: CallOverrides): Promise<BigNumber>;
    totalRevocable(overrides?: CallOverrides): Promise<BigNumber>;
    totalScoreUpdatesRequired(overrides?: CallOverrides): Promise<BigNumber>;
    transferOwnership(newOwner: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    unreleasedPLPIncome(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    updateAlpha(_alphaNumerator: PromiseOrValue<BigNumberish>, _alphaDenominator: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    updateMultipliers(market: PromiseOrValue<string>, supplyMultiplier: PromiseOrValue<BigNumberish>, borrowMultiplier: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    updateScores(users: PromiseOrValue<string>[], overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    vTokenForAsset(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<string>;
    xvsUpdated(user: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    xvsVault(overrides?: CallOverrides): Promise<string>;
    xvsVaultPoolId(overrides?: CallOverrides): Promise<BigNumber>;
    xvsVaultRewardToken(overrides?: CallOverrides): Promise<string>;
    callStatic: {
        MAXIMUM_XVS_CAP(overrides?: CallOverrides): Promise<BigNumber>;
        MINIMUM_STAKED_XVS(overrides?: CallOverrides): Promise<BigNumber>;
        NATIVE_MARKET(overrides?: CallOverrides): Promise<string>;
        STAKING_PERIOD(overrides?: CallOverrides): Promise<BigNumber>;
        WRAPPED_NATIVE_TOKEN(overrides?: CallOverrides): Promise<string>;
        acceptOwnership(overrides?: CallOverrides): Promise<void>;
        accessControlManager(overrides?: CallOverrides): Promise<string>;
        accrueInterest(vToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        accrueInterestAndUpdateScore(user: PromiseOrValue<string>, market: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        addMarket(comptroller: PromiseOrValue<string>, market: PromiseOrValue<string>, supplyMultiplier: PromiseOrValue<BigNumberish>, borrowMultiplier: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        alphaDenominator(overrides?: CallOverrides): Promise<BigNumber>;
        alphaNumerator(overrides?: CallOverrides): Promise<BigNumber>;
        blocksOrSecondsPerYear(overrides?: CallOverrides): Promise<BigNumber>;
        burn(user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        burnForUser(user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        calculateAPR(market: PromiseOrValue<string>, user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<IPrime.APRInfoStructOutput>;
        calculateScore(xvs: PromiseOrValue<BigNumberish>, capital: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        claim(overrides?: CallOverrides): Promise<void>;
        "claimInterest(address)"(vToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        "claimInterest(address,address)"(vToken: PromiseOrValue<string>, user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        claimTimeRemaining(user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        comptroller(overrides?: CallOverrides): Promise<string>;
        estimateAPR(market: PromiseOrValue<string>, user: PromiseOrValue<string>, borrow: PromiseOrValue<BigNumberish>, supply: PromiseOrValue<BigNumberish>, xvsStaked: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<IPrime.APRInfoStructOutput>;
        getAllMarkets(overrides?: CallOverrides): Promise<string[]>;
        getBlockNumberOrTimestamp(overrides?: CallOverrides): Promise<BigNumber>;
        getInterestAccrued(vToken: PromiseOrValue<string>, user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getPendingRewards(user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PrimeStorageV1.PendingRewardStructOutput[]>;
        incomeDistributionYearly(vToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        initialize(xvsVault_: PromiseOrValue<string>, xvsVaultRewardToken_: PromiseOrValue<string>, xvsVaultPoolId_: PromiseOrValue<BigNumberish>, alphaNumerator_: PromiseOrValue<BigNumberish>, alphaDenominator_: PromiseOrValue<BigNumberish>, accessControlManager_: PromiseOrValue<string>, primeLiquidityProvider_: PromiseOrValue<string>, comptroller_: PromiseOrValue<string>, oracle_: PromiseOrValue<string>, loopsLimit_: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        initializeV2(poolRegistry_: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        interests(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            accrued: BigNumber;
            score: BigNumber;
            rewardIndex: BigNumber;
        }>;
        irrevocableLimit(overrides?: CallOverrides): Promise<BigNumber>;
        isScoreUpdated(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
        isTimeBased(overrides?: CallOverrides): Promise<boolean>;
        isUserPrimeHolder(user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
        issue(isIrrevocable: PromiseOrValue<boolean>, users: PromiseOrValue<string>[], overrides?: CallOverrides): Promise<void>;
        markets(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber,
            boolean
        ] & {
            supplyMultiplier: BigNumber;
            borrowMultiplier: BigNumber;
            rewardIndex: BigNumber;
            sumOfMembersScore: BigNumber;
            exists: boolean;
        }>;
        maxLoopsLimit(overrides?: CallOverrides): Promise<BigNumber>;
        mintForUser(user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        nextScoreUpdateRoundId(overrides?: CallOverrides): Promise<BigNumber>;
        oracle(overrides?: CallOverrides): Promise<string>;
        owner(overrides?: CallOverrides): Promise<string>;
        paused(overrides?: CallOverrides): Promise<boolean>;
        pendingOwner(overrides?: CallOverrides): Promise<string>;
        pendingScoreUpdates(overrides?: CallOverrides): Promise<BigNumber>;
        poolRegistry(overrides?: CallOverrides): Promise<string>;
        primeLiquidityProvider(overrides?: CallOverrides): Promise<string>;
        renounceOwnership(overrides?: CallOverrides): Promise<void>;
        revocableLimit(overrides?: CallOverrides): Promise<BigNumber>;
        setAccessControlManager(accessControlManager_: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        setLimit(_irrevocableLimit: PromiseOrValue<BigNumberish>, _revocableLimit: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        setMaxLoopsLimit(loopsLimit: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        setPLP(plp: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        setStakedAt(users: PromiseOrValue<string>[], timestamps: PromiseOrValue<BigNumberish>[], overrides?: CallOverrides): Promise<void>;
        stakedAt(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        togglePause(overrides?: CallOverrides): Promise<void>;
        tokens(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            boolean,
            boolean
        ] & {
            exists: boolean;
            isIrrevocable: boolean;
        }>;
        totalIrrevocable(overrides?: CallOverrides): Promise<BigNumber>;
        totalRevocable(overrides?: CallOverrides): Promise<BigNumber>;
        totalScoreUpdatesRequired(overrides?: CallOverrides): Promise<BigNumber>;
        transferOwnership(newOwner: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        unreleasedPLPIncome(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        updateAlpha(_alphaNumerator: PromiseOrValue<BigNumberish>, _alphaDenominator: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        updateMultipliers(market: PromiseOrValue<string>, supplyMultiplier: PromiseOrValue<BigNumberish>, borrowMultiplier: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        updateScores(users: PromiseOrValue<string>[], overrides?: CallOverrides): Promise<void>;
        vTokenForAsset(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<string>;
        xvsUpdated(user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        xvsVault(overrides?: CallOverrides): Promise<string>;
        xvsVaultPoolId(overrides?: CallOverrides): Promise<BigNumber>;
        xvsVaultRewardToken(overrides?: CallOverrides): Promise<string>;
    };
    filters: {
        "AlphaUpdated(uint128,uint128,uint128,uint128)"(oldNumerator?: PromiseOrValue<BigNumberish> | null, oldDenominator?: PromiseOrValue<BigNumberish> | null, newNumerator?: PromiseOrValue<BigNumberish> | null, newDenominator?: null): AlphaUpdatedEventFilter;
        AlphaUpdated(oldNumerator?: PromiseOrValue<BigNumberish> | null, oldDenominator?: PromiseOrValue<BigNumberish> | null, newNumerator?: PromiseOrValue<BigNumberish> | null, newDenominator?: null): AlphaUpdatedEventFilter;
        "Burn(address)"(user?: PromiseOrValue<string> | null): BurnEventFilter;
        Burn(user?: PromiseOrValue<string> | null): BurnEventFilter;
        "Initialized(uint8)"(version?: null): InitializedEventFilter;
        Initialized(version?: null): InitializedEventFilter;
        "InterestClaimed(address,address,uint256)"(user?: PromiseOrValue<string> | null, market?: PromiseOrValue<string> | null, amount?: null): InterestClaimedEventFilter;
        InterestClaimed(user?: PromiseOrValue<string> | null, market?: PromiseOrValue<string> | null, amount?: null): InterestClaimedEventFilter;
        "MarketAdded(address,address,uint256,uint256)"(comptroller?: PromiseOrValue<string> | null, market?: PromiseOrValue<string> | null, supplyMultiplier?: null, borrowMultiplier?: null): MarketAddedEventFilter;
        MarketAdded(comptroller?: PromiseOrValue<string> | null, market?: PromiseOrValue<string> | null, supplyMultiplier?: null, borrowMultiplier?: null): MarketAddedEventFilter;
        "MaxLoopsLimitUpdated(uint256,uint256)"(oldMaxLoopsLimit?: null, newmaxLoopsLimit?: null): MaxLoopsLimitUpdatedEventFilter;
        MaxLoopsLimitUpdated(oldMaxLoopsLimit?: null, newmaxLoopsLimit?: null): MaxLoopsLimitUpdatedEventFilter;
        "Mint(address,bool)"(user?: PromiseOrValue<string> | null, isIrrevocable?: null): MintEventFilter;
        Mint(user?: PromiseOrValue<string> | null, isIrrevocable?: null): MintEventFilter;
        "MintLimitsUpdated(uint256,uint256,uint256,uint256)"(oldIrrevocableLimit?: PromiseOrValue<BigNumberish> | null, oldRevocableLimit?: PromiseOrValue<BigNumberish> | null, newIrrevocableLimit?: PromiseOrValue<BigNumberish> | null, newRevocableLimit?: null): MintLimitsUpdatedEventFilter;
        MintLimitsUpdated(oldIrrevocableLimit?: PromiseOrValue<BigNumberish> | null, oldRevocableLimit?: PromiseOrValue<BigNumberish> | null, newIrrevocableLimit?: PromiseOrValue<BigNumberish> | null, newRevocableLimit?: null): MintLimitsUpdatedEventFilter;
        "MultiplierUpdated(address,uint256,uint256,uint256,uint256)"(market?: PromiseOrValue<string> | null, oldSupplyMultiplier?: PromiseOrValue<BigNumberish> | null, oldBorrowMultiplier?: PromiseOrValue<BigNumberish> | null, newSupplyMultiplier?: null, newBorrowMultiplier?: null): MultiplierUpdatedEventFilter;
        MultiplierUpdated(market?: PromiseOrValue<string> | null, oldSupplyMultiplier?: PromiseOrValue<BigNumberish> | null, oldBorrowMultiplier?: PromiseOrValue<BigNumberish> | null, newSupplyMultiplier?: null, newBorrowMultiplier?: null): MultiplierUpdatedEventFilter;
        "NewAccessControlManager(address,address)"(oldAccessControlManager?: null, newAccessControlManager?: null): NewAccessControlManagerEventFilter;
        NewAccessControlManager(oldAccessControlManager?: null, newAccessControlManager?: null): NewAccessControlManagerEventFilter;
        "OwnershipTransferStarted(address,address)"(previousOwner?: PromiseOrValue<string> | null, newOwner?: PromiseOrValue<string> | null): OwnershipTransferStartedEventFilter;
        OwnershipTransferStarted(previousOwner?: PromiseOrValue<string> | null, newOwner?: PromiseOrValue<string> | null): OwnershipTransferStartedEventFilter;
        "OwnershipTransferred(address,address)"(previousOwner?: PromiseOrValue<string> | null, newOwner?: PromiseOrValue<string> | null): OwnershipTransferredEventFilter;
        OwnershipTransferred(previousOwner?: PromiseOrValue<string> | null, newOwner?: PromiseOrValue<string> | null): OwnershipTransferredEventFilter;
        "Paused(address)"(account?: null): PausedEventFilter;
        Paused(account?: null): PausedEventFilter;
        "StakedAtUpdated(address,uint256)"(user?: PromiseOrValue<string> | null, timestamp?: null): StakedAtUpdatedEventFilter;
        StakedAtUpdated(user?: PromiseOrValue<string> | null, timestamp?: null): StakedAtUpdatedEventFilter;
        "TokenUpgraded(address)"(user?: PromiseOrValue<string> | null): TokenUpgradedEventFilter;
        TokenUpgraded(user?: PromiseOrValue<string> | null): TokenUpgradedEventFilter;
        "Unpaused(address)"(account?: null): UnpausedEventFilter;
        Unpaused(account?: null): UnpausedEventFilter;
        "UserScoreUpdated(address)"(user?: PromiseOrValue<string> | null): UserScoreUpdatedEventFilter;
        UserScoreUpdated(user?: PromiseOrValue<string> | null): UserScoreUpdatedEventFilter;
    };
    estimateGas: {
        MAXIMUM_XVS_CAP(overrides?: CallOverrides): Promise<BigNumber>;
        MINIMUM_STAKED_XVS(overrides?: CallOverrides): Promise<BigNumber>;
        NATIVE_MARKET(overrides?: CallOverrides): Promise<BigNumber>;
        STAKING_PERIOD(overrides?: CallOverrides): Promise<BigNumber>;
        WRAPPED_NATIVE_TOKEN(overrides?: CallOverrides): Promise<BigNumber>;
        acceptOwnership(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        accessControlManager(overrides?: CallOverrides): Promise<BigNumber>;
        accrueInterest(vToken: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        accrueInterestAndUpdateScore(user: PromiseOrValue<string>, market: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        addMarket(comptroller: PromiseOrValue<string>, market: PromiseOrValue<string>, supplyMultiplier: PromiseOrValue<BigNumberish>, borrowMultiplier: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        alphaDenominator(overrides?: CallOverrides): Promise<BigNumber>;
        alphaNumerator(overrides?: CallOverrides): Promise<BigNumber>;
        blocksOrSecondsPerYear(overrides?: CallOverrides): Promise<BigNumber>;
        burn(user: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        burnForUser(user: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        calculateAPR(market: PromiseOrValue<string>, user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        calculateScore(xvs: PromiseOrValue<BigNumberish>, capital: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        claim(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        "claimInterest(address)"(vToken: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        "claimInterest(address,address)"(vToken: PromiseOrValue<string>, user: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        claimTimeRemaining(user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        comptroller(overrides?: CallOverrides): Promise<BigNumber>;
        estimateAPR(market: PromiseOrValue<string>, user: PromiseOrValue<string>, borrow: PromiseOrValue<BigNumberish>, supply: PromiseOrValue<BigNumberish>, xvsStaked: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        getAllMarkets(overrides?: CallOverrides): Promise<BigNumber>;
        getBlockNumberOrTimestamp(overrides?: CallOverrides): Promise<BigNumber>;
        getInterestAccrued(vToken: PromiseOrValue<string>, user: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        getPendingRewards(user: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        incomeDistributionYearly(vToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        initialize(xvsVault_: PromiseOrValue<string>, xvsVaultRewardToken_: PromiseOrValue<string>, xvsVaultPoolId_: PromiseOrValue<BigNumberish>, alphaNumerator_: PromiseOrValue<BigNumberish>, alphaDenominator_: PromiseOrValue<BigNumberish>, accessControlManager_: PromiseOrValue<string>, primeLiquidityProvider_: PromiseOrValue<string>, comptroller_: PromiseOrValue<string>, oracle_: PromiseOrValue<string>, loopsLimit_: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        initializeV2(poolRegistry_: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        interests(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        irrevocableLimit(overrides?: CallOverrides): Promise<BigNumber>;
        isScoreUpdated(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        isTimeBased(overrides?: CallOverrides): Promise<BigNumber>;
        isUserPrimeHolder(user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        issue(isIrrevocable: PromiseOrValue<boolean>, users: PromiseOrValue<string>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        markets(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        maxLoopsLimit(overrides?: CallOverrides): Promise<BigNumber>;
        mintForUser(user: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        nextScoreUpdateRoundId(overrides?: CallOverrides): Promise<BigNumber>;
        oracle(overrides?: CallOverrides): Promise<BigNumber>;
        owner(overrides?: CallOverrides): Promise<BigNumber>;
        paused(overrides?: CallOverrides): Promise<BigNumber>;
        pendingOwner(overrides?: CallOverrides): Promise<BigNumber>;
        pendingScoreUpdates(overrides?: CallOverrides): Promise<BigNumber>;
        poolRegistry(overrides?: CallOverrides): Promise<BigNumber>;
        primeLiquidityProvider(overrides?: CallOverrides): Promise<BigNumber>;
        renounceOwnership(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        revocableLimit(overrides?: CallOverrides): Promise<BigNumber>;
        setAccessControlManager(accessControlManager_: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setLimit(_irrevocableLimit: PromiseOrValue<BigNumberish>, _revocableLimit: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setMaxLoopsLimit(loopsLimit: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setPLP(plp: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setStakedAt(users: PromiseOrValue<string>[], timestamps: PromiseOrValue<BigNumberish>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        stakedAt(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        togglePause(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        tokens(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        totalIrrevocable(overrides?: CallOverrides): Promise<BigNumber>;
        totalRevocable(overrides?: CallOverrides): Promise<BigNumber>;
        totalScoreUpdatesRequired(overrides?: CallOverrides): Promise<BigNumber>;
        transferOwnership(newOwner: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        unreleasedPLPIncome(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        updateAlpha(_alphaNumerator: PromiseOrValue<BigNumberish>, _alphaDenominator: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        updateMultipliers(market: PromiseOrValue<string>, supplyMultiplier: PromiseOrValue<BigNumberish>, borrowMultiplier: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        updateScores(users: PromiseOrValue<string>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        vTokenForAsset(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        xvsUpdated(user: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        xvsVault(overrides?: CallOverrides): Promise<BigNumber>;
        xvsVaultPoolId(overrides?: CallOverrides): Promise<BigNumber>;
        xvsVaultRewardToken(overrides?: CallOverrides): Promise<BigNumber>;
    };
    populateTransaction: {
        MAXIMUM_XVS_CAP(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        MINIMUM_STAKED_XVS(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        NATIVE_MARKET(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        STAKING_PERIOD(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        WRAPPED_NATIVE_TOKEN(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        acceptOwnership(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        accessControlManager(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        accrueInterest(vToken: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        accrueInterestAndUpdateScore(user: PromiseOrValue<string>, market: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        addMarket(comptroller: PromiseOrValue<string>, market: PromiseOrValue<string>, supplyMultiplier: PromiseOrValue<BigNumberish>, borrowMultiplier: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        alphaDenominator(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        alphaNumerator(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        blocksOrSecondsPerYear(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        burn(user: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        burnForUser(user: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        calculateAPR(market: PromiseOrValue<string>, user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        calculateScore(xvs: PromiseOrValue<BigNumberish>, capital: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        claim(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        "claimInterest(address)"(vToken: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        "claimInterest(address,address)"(vToken: PromiseOrValue<string>, user: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        claimTimeRemaining(user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        comptroller(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        estimateAPR(market: PromiseOrValue<string>, user: PromiseOrValue<string>, borrow: PromiseOrValue<BigNumberish>, supply: PromiseOrValue<BigNumberish>, xvsStaked: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getAllMarkets(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getBlockNumberOrTimestamp(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getInterestAccrued(vToken: PromiseOrValue<string>, user: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        getPendingRewards(user: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        incomeDistributionYearly(vToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        initialize(xvsVault_: PromiseOrValue<string>, xvsVaultRewardToken_: PromiseOrValue<string>, xvsVaultPoolId_: PromiseOrValue<BigNumberish>, alphaNumerator_: PromiseOrValue<BigNumberish>, alphaDenominator_: PromiseOrValue<BigNumberish>, accessControlManager_: PromiseOrValue<string>, primeLiquidityProvider_: PromiseOrValue<string>, comptroller_: PromiseOrValue<string>, oracle_: PromiseOrValue<string>, loopsLimit_: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        initializeV2(poolRegistry_: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        interests(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        irrevocableLimit(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        isScoreUpdated(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        isTimeBased(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        isUserPrimeHolder(user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        issue(isIrrevocable: PromiseOrValue<boolean>, users: PromiseOrValue<string>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        markets(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        maxLoopsLimit(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        mintForUser(user: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        nextScoreUpdateRoundId(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        oracle(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        owner(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        paused(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        pendingOwner(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        pendingScoreUpdates(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        poolRegistry(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        primeLiquidityProvider(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        renounceOwnership(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        revocableLimit(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        setAccessControlManager(accessControlManager_: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setLimit(_irrevocableLimit: PromiseOrValue<BigNumberish>, _revocableLimit: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setMaxLoopsLimit(loopsLimit: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setPLP(plp: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setStakedAt(users: PromiseOrValue<string>[], timestamps: PromiseOrValue<BigNumberish>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        stakedAt(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        togglePause(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        tokens(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        totalIrrevocable(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        totalRevocable(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        totalScoreUpdatesRequired(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        transferOwnership(newOwner: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        unreleasedPLPIncome(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        updateAlpha(_alphaNumerator: PromiseOrValue<BigNumberish>, _alphaDenominator: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        updateMultipliers(market: PromiseOrValue<string>, supplyMultiplier: PromiseOrValue<BigNumberish>, borrowMultiplier: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        updateScores(users: PromiseOrValue<string>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        vTokenForAsset(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        xvsUpdated(user: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        xvsVault(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        xvsVaultPoolId(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        xvsVaultRewardToken(overrides?: CallOverrides): Promise<PopulatedTransaction>;
    };
}
