import type { TypedEventFilter, TypedEvent, TypedListener, OnEvent, PromiseOrValue } from "../../../../common";
import type { FunctionFragment, Result } from "@ethersproject/abi";
import type { Listener, Provider } from "@ethersproject/providers";
import type { BaseContract, BigNumber, BigNumberish, BytesLike, CallOverrides, PopulatedTransaction, Signer, utils } from "ethers";
export interface PrimeStorageV1Interface extends utils.Interface {
    functions: {
        "alphaDenominator()": FunctionFragment;
        "alphaNumerator()": FunctionFragment;
        "interests(address,address)": FunctionFragment;
        "irrevocableLimit()": FunctionFragment;
        "isScoreUpdated(uint256,address)": FunctionFragment;
        "markets(address)": FunctionFragment;
        "nextScoreUpdateRoundId()": FunctionFragment;
        "oracle()": FunctionFragment;
        "pendingScoreUpdates()": FunctionFragment;
        "poolRegistry()": FunctionFragment;
        "primeLiquidityProvider()": FunctionFragment;
        "revocableLimit()": FunctionFragment;
        "stakedAt(address)": FunctionFragment;
        "tokens(address)": FunctionFragment;
        "totalIrrevocable()": FunctionFragment;
        "totalRevocable()": FunctionFragment;
        "totalScoreUpdatesRequired()": FunctionFragment;
        "unreleasedPLPIncome(address)": FunctionFragment;
        "vTokenForAsset(address)": FunctionFragment;
        "xvsVault()": FunctionFragment;
        "xvsVaultPoolId()": FunctionFragment;
        "xvsVaultRewardToken()": FunctionFragment;
    };
    getFunction(nameOrSignatureOrTopic: "alphaDenominator" | "alphaNumerator" | "interests" | "irrevocableLimit" | "isScoreUpdated" | "markets" | "nextScoreUpdateRoundId" | "oracle" | "pendingScoreUpdates" | "poolRegistry" | "primeLiquidityProvider" | "revocableLimit" | "stakedAt" | "tokens" | "totalIrrevocable" | "totalRevocable" | "totalScoreUpdatesRequired" | "unreleasedPLPIncome" | "vTokenForAsset" | "xvsVault" | "xvsVaultPoolId" | "xvsVaultRewardToken"): FunctionFragment;
    encodeFunctionData(functionFragment: "alphaDenominator", values?: undefined): string;
    encodeFunctionData(functionFragment: "alphaNumerator", values?: undefined): 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: "markets", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "nextScoreUpdateRoundId", values?: undefined): string;
    encodeFunctionData(functionFragment: "oracle", values?: undefined): string;
    encodeFunctionData(functionFragment: "pendingScoreUpdates", values?: undefined): string;
    encodeFunctionData(functionFragment: "poolRegistry", values?: undefined): string;
    encodeFunctionData(functionFragment: "primeLiquidityProvider", values?: undefined): string;
    encodeFunctionData(functionFragment: "revocableLimit", values?: undefined): string;
    encodeFunctionData(functionFragment: "stakedAt", values: [PromiseOrValue<string>]): 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: "unreleasedPLPIncome", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "vTokenForAsset", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "xvsVault", values?: undefined): string;
    encodeFunctionData(functionFragment: "xvsVaultPoolId", values?: undefined): string;
    encodeFunctionData(functionFragment: "xvsVaultRewardToken", values?: undefined): string;
    decodeFunctionResult(functionFragment: "alphaDenominator", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "alphaNumerator", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "interests", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "irrevocableLimit", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "isScoreUpdated", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "markets", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "nextScoreUpdateRoundId", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "oracle", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "pendingScoreUpdates", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "poolRegistry", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "primeLiquidityProvider", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "revocableLimit", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "stakedAt", 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: "unreleasedPLPIncome", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "vTokenForAsset", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "xvsVault", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "xvsVaultPoolId", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "xvsVaultRewardToken", data: BytesLike): Result;
    events: {};
}
export interface PrimeStorageV1 extends BaseContract {
    connect(signerOrProvider: Signer | Provider | string): this;
    attach(addressOrName: string): this;
    deployed(): Promise<this>;
    interface: PrimeStorageV1Interface;
    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: {
        alphaDenominator(overrides?: CallOverrides): Promise<[BigNumber]>;
        alphaNumerator(overrides?: CallOverrides): Promise<[BigNumber]>;
        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]>;
        markets(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber,
            boolean
        ] & {
            supplyMultiplier: BigNumber;
            borrowMultiplier: BigNumber;
            rewardIndex: BigNumber;
            sumOfMembersScore: BigNumber;
            exists: boolean;
        }>;
        nextScoreUpdateRoundId(overrides?: CallOverrides): Promise<[BigNumber]>;
        oracle(overrides?: CallOverrides): Promise<[string]>;
        pendingScoreUpdates(overrides?: CallOverrides): Promise<[BigNumber]>;
        poolRegistry(overrides?: CallOverrides): Promise<[string]>;
        primeLiquidityProvider(overrides?: CallOverrides): Promise<[string]>;
        revocableLimit(overrides?: CallOverrides): Promise<[BigNumber]>;
        stakedAt(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        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]>;
        unreleasedPLPIncome(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        vTokenForAsset(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[string]>;
        xvsVault(overrides?: CallOverrides): Promise<[string]>;
        xvsVaultPoolId(overrides?: CallOverrides): Promise<[BigNumber]>;
        xvsVaultRewardToken(overrides?: CallOverrides): Promise<[string]>;
    };
    alphaDenominator(overrides?: CallOverrides): Promise<BigNumber>;
    alphaNumerator(overrides?: CallOverrides): Promise<BigNumber>;
    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>;
    markets(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber,
        boolean
    ] & {
        supplyMultiplier: BigNumber;
        borrowMultiplier: BigNumber;
        rewardIndex: BigNumber;
        sumOfMembersScore: BigNumber;
        exists: boolean;
    }>;
    nextScoreUpdateRoundId(overrides?: CallOverrides): Promise<BigNumber>;
    oracle(overrides?: CallOverrides): Promise<string>;
    pendingScoreUpdates(overrides?: CallOverrides): Promise<BigNumber>;
    poolRegistry(overrides?: CallOverrides): Promise<string>;
    primeLiquidityProvider(overrides?: CallOverrides): Promise<string>;
    revocableLimit(overrides?: CallOverrides): Promise<BigNumber>;
    stakedAt(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    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>;
    unreleasedPLPIncome(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    vTokenForAsset(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<string>;
    xvsVault(overrides?: CallOverrides): Promise<string>;
    xvsVaultPoolId(overrides?: CallOverrides): Promise<BigNumber>;
    xvsVaultRewardToken(overrides?: CallOverrides): Promise<string>;
    callStatic: {
        alphaDenominator(overrides?: CallOverrides): Promise<BigNumber>;
        alphaNumerator(overrides?: CallOverrides): Promise<BigNumber>;
        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>;
        markets(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber,
            boolean
        ] & {
            supplyMultiplier: BigNumber;
            borrowMultiplier: BigNumber;
            rewardIndex: BigNumber;
            sumOfMembersScore: BigNumber;
            exists: boolean;
        }>;
        nextScoreUpdateRoundId(overrides?: CallOverrides): Promise<BigNumber>;
        oracle(overrides?: CallOverrides): Promise<string>;
        pendingScoreUpdates(overrides?: CallOverrides): Promise<BigNumber>;
        poolRegistry(overrides?: CallOverrides): Promise<string>;
        primeLiquidityProvider(overrides?: CallOverrides): Promise<string>;
        revocableLimit(overrides?: CallOverrides): Promise<BigNumber>;
        stakedAt(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        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>;
        unreleasedPLPIncome(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        vTokenForAsset(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<string>;
        xvsVault(overrides?: CallOverrides): Promise<string>;
        xvsVaultPoolId(overrides?: CallOverrides): Promise<BigNumber>;
        xvsVaultRewardToken(overrides?: CallOverrides): Promise<string>;
    };
    filters: {};
    estimateGas: {
        alphaDenominator(overrides?: CallOverrides): Promise<BigNumber>;
        alphaNumerator(overrides?: CallOverrides): 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>;
        markets(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        nextScoreUpdateRoundId(overrides?: CallOverrides): Promise<BigNumber>;
        oracle(overrides?: CallOverrides): Promise<BigNumber>;
        pendingScoreUpdates(overrides?: CallOverrides): Promise<BigNumber>;
        poolRegistry(overrides?: CallOverrides): Promise<BigNumber>;
        primeLiquidityProvider(overrides?: CallOverrides): Promise<BigNumber>;
        revocableLimit(overrides?: CallOverrides): Promise<BigNumber>;
        stakedAt(arg0: PromiseOrValue<string>, overrides?: CallOverrides): 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>;
        unreleasedPLPIncome(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        vTokenForAsset(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        xvsVault(overrides?: CallOverrides): Promise<BigNumber>;
        xvsVaultPoolId(overrides?: CallOverrides): Promise<BigNumber>;
        xvsVaultRewardToken(overrides?: CallOverrides): Promise<BigNumber>;
    };
    populateTransaction: {
        alphaDenominator(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        alphaNumerator(overrides?: CallOverrides): 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>;
        markets(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        nextScoreUpdateRoundId(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        oracle(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        pendingScoreUpdates(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        poolRegistry(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        primeLiquidityProvider(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        revocableLimit(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        stakedAt(arg0: PromiseOrValue<string>, overrides?: CallOverrides): 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>;
        unreleasedPLPIncome(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        vTokenForAsset(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        xvsVault(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        xvsVaultPoolId(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        xvsVaultRewardToken(overrides?: CallOverrides): Promise<PopulatedTransaction>;
    };
}
