import { GenericCurrency } from '../general';
import type { FixedTermInfo } from '../lenderTypes';
export type GetMarketsResponse = {
    markets: {
        items: {
            uniqueKey: string;
            irmAddress: string;
            oracleAddress: string;
            lltv: string;
            whitelisted: boolean;
            loanAsset: {
                address: string;
                name: string;
                symbol: string;
                decimals: number;
                priceUsd: string;
            };
            collateralAsset: {
                address: string;
                name: string;
                symbol: string;
                decimals: number;
                priceUsd: string;
            };
            state: {
                borrowApy: string;
                supplyApy: string;
                price: string;
                rewards: {
                    asset: {
                        address: string;
                    };
                    supplyApr: number;
                    borrowApr: number;
                }[];
                borrowAssets: string;
                borrowAssetsUsd: string;
                supplyAssets: string;
                supplyAssetsUsd: string;
                collateralAssets: string;
                collateralAssetsUsd: string;
                fee: string;
                rateAtTarget: string;
            };
        }[];
    };
};
export interface BaseYields {
    variableBorrowRate: number;
    stableBorrowRate: number;
    depositRate: number;
}
export type RewardsMap = {
    [rewardId: string]: BaseYields;
};
export interface RewardEntry extends BaseYields {
    asset: string;
}
export type RewardsList = RewardEntry[];
export interface MorphoMarket {
    /** the 1delta lender enum */
    lender: string;
    collateralDecimals?: number;
    loanDecimals?: number;
    /** the market hash */
    id: string;
    /** market params */
    lltv: string;
    oracle: string;
    irm: string;
    collateralAddress: string;
    loanAddress: string;
    /** Lista extensions */
    minLoan?: string;
    broker?: string;
    loanProvider?: string;
    collateralProvider?: string;
    hasWhitelist?: boolean;
    /** false when the market has been removed from the Morpho whitelist */
    isListed?: boolean;
    /** protocol fee */
    fee?: string;
    /** IRM rate at target utilization */
    rateAtTarget?: string;
    /** IRM rate cap */
    rateCap?: string;
    /** IRM rate floor */
    rateFloor?: string;
    /** Lista broker term menu — available term products (brokered markets only) */
    terms?: {
        termId: number;
        durationSecs: number;
        durationDays: number;
        /** annualised borrow rate in PERCENT (e.g. 3.857 = 3.857% APR) */
        apr: number;
    }[];
    /**
     * Canonical cross-protocol fixed-term descriptor (Lista brokered + Morpho
     * Midnight). Present on fixed-rate/fixed-maturity markets only. See
     * {@link FixedTermInfo}.
     */
    fixedTerm?: FixedTermInfo;
}
export interface MorphoGeneralPublicResponse {
    data: {
        [tokenSymbol: string]: {
            marketUid: string;
            name?: string;
            poolId: string;
            underlying: string;
            asset: GenericCurrency;
            totalDeposits: number;
            totalDebtStable: 0;
            totalDebt: number;
            totalLiquidity: number;
            borrowLiquidity: number;
            totalLiquidityUSD: number;
            borrowLiquidityUSD: number;
            totalDepositsUSD: number;
            totalDebtStableUSD: 0;
            totalDebtUSD: number;
            /** Borrow utilization (0..1). */
            utilization: number;
            depositRate: number;
            variableBorrowRate: number;
            intrinsicYield: number;
            /** fixed-term (broker) borrow rate in percent; 0 for non-brokered Morpho-type markets */
            stableBorrowRate: number;
            rewards?: RewardsList;
            decimals: number;
            config: {
                [0]: {
                    category: number;
                    borrowCollateralFactor: number;
                    collateralFactor: number;
                    borrowFactor: 1;
                    liquidationPenalty: number;
                    closeFactor: number;
                    collateralDisabled: boolean;
                    debtDisabled: boolean;
                };
            };
            closeFactor: number;
            collateralActive: boolean;
            borrowingEnabled: boolean;
            depositsEnabled: boolean;
            hasStable: boolean;
            /** Lista fixed-term broker markets: variable (flexible) borrowing is not available — borrow
             *  is fixed-term only (via the broker). Supply yield stays variable. False/absent otherwise. */
            variableBorrowDisabled?: boolean;
            isActive: true;
            isFrozen: false;
        };
    };
    /** morpho market info */
    params: {
        market: MorphoMarket;
    };
    chainId: string;
}
//# sourceMappingURL=morpho-types.d.ts.map