import type { Amount } from "../common/amount.js";
import type { TokenConfig } from "../environments/index.js";
import type { MorphoReward } from "./morphoReward.js";
import type { MorphoStakingReward } from "./morphoStakingReward.js";
export type MorphoVault = {
    chainId: number;
    vaultKey: string;
    version: 1 | 2;
    deprecated: boolean;
    vaultToken: TokenConfig;
    underlyingToken: TokenConfig;
    vaultSupply: Amount;
    totalSupply: Amount;
    totalSupplyUsd: number;
    totalLiquidity: Amount;
    totalLiquidityUsd: number;
    totalStaked: Amount;
    totalStakedUsd: number;
    underlyingPrice: number;
    baseApy: number;
    rewardsApy: number;
    totalApy: number;
    stakingRewardsApr: number;
    totalStakingApr: number;
    performanceFee: number;
    curators: string[];
    timelock: number;
    markets: MorphoVaultMarket[];
    rewards: Omit<MorphoReward, "marketId">[];
    stakingRewards: MorphoStakingReward[];
};
export type MorphoVaultMarket = {
    allocation: number;
    marketId: string;
    marketCollateral: TokenConfig;
    marketApy: number;
    marketLiquidity: Amount;
    marketLiquidityUsd: number;
    marketLoanToValue: number;
    totalSupplied: Amount;
    totalSuppliedUsd: number;
    rewards: Omit<MorphoReward, "marketId">[];
};
export type MorphoVaultSnapshot = {
    chainId: number;
    vaultAddress: string;
    totalSupply: number;
    totalSupplyUsd: number;
    totalBorrows: number;
    totalBorrowsUsd: number;
    totalLiquidity: number;
    totalLiquidityUsd: number;
    timestamp: number;
};
export type MorphoVaultStakingSnapshot = {
    chainId: number;
    vaultAddress: string;
    totalStaked: number;
    totalStakedUsd: number;
    timestamp: number;
};
export type MorphoVaultV2ApyResponse = {
    address: string;
    avgApy: number;
    avgNetApy: number;
    totalAssets: string;
    totalAssetsUsd: number;
    totalSupply: string;
    liquidity: string;
    liquidityUsd: number;
    idleAssetsUsd: number;
    asset: {
        yield: {
            apr: number;
        };
    };
    performanceFee: number;
    managementFee: number;
    rewards: MorphoVaultV2RewardResponse[];
};
export type MorphoVaultV2RewardResponse = {
    asset: {
        address: string;
        chain: {
            id: number;
        };
    };
    supplyApr: number;
    yearlySupplyTokens: string;
};
//# sourceMappingURL=morphoVault.d.ts.map