import { GenericCurrency } from '../general';
import { LenderConfigData } from '../lenderTypes';
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 ModeBase {
    category: number;
    label: string;
}
export interface EModeData extends ModeBase {
    borrowCollateralFactor: number;
    collateralFactor: number;
    priceSource: string;
}
export declare enum AaveV3GetReservesIndexes {
    unbacked = 0,
    accruedToTreasuryScaled = 1,
    totalAToken = 2,
    totalStableDebt = 3,
    totalVariableDebt = 4,
    liquidityRate = 5,
    variableBorrowRate = 6,
    stableBorrowRate = 7,
    averageStableBorrowRate = 8,
    liquidityIndex = 9,
    variableBorrowIndex = 10,
    lastUpdateTimestamp = 11
}
export declare enum AaveV3PoolGetReservesFields {
    configuration = 0,
    liquidityIndex = 1,
    currentLiquidityRate = 2,
    variableBorrowIndex = 3,
    currentVariableBorrowRate = 4,
    currentStableBorrowRate = 5,
    lastUpdateTimestamp = 6,
    id = 7,
    aTokenAddress = 8,
    stableDebtTokenAddress = 9,
    variableDebtTokenAddress = 10,
    interestRateStrategyAddress = 11,
    accruedToTreasury = 12,
    unbacked = 13,
    isolationModeTotalDebt = 14
}
export declare enum AaveV3GetreserveConfigDataIndexes {
    decimals = 0,
    ltv = 1,
    liquidationThreshold = 2,
    liquidationBonus = 3,
    reserveFactor = 4,
    usageAsCollateralEnabled = 5,
    borrowingEnabled = 6,
    stableBorrowRateEnabled = 7,
    isActive = 8,
    isFrozen = 9
}
/** Names for the emode struct query */
export declare enum AaveV3GetEModeCategoryDataIndexes {
    ltv = "ltv",
    liquidationThreshold = "liquidationThreshold",
    liquidationBonus = "liquidationBonus",
    priceSource = "priceSource",
    label = "label"
}
export interface AaveV3GeneralPublicResponse {
    data: {
        [tokenSymbol: string]: {
            marketUid: string;
            name?: string;
            underlying: string;
            asset: GenericCurrency;
            totalDeposits: number;
            totalDebtStable: number;
            totalDebt: number;
            totalDepositsUSD: number;
            totalDebtStableUSD: number;
            totalDebtUSD: number;
            /** Borrow utilization (0..1). */
            utilization: number;
            depositRate: number;
            variableBorrowRate: number;
            stableBorrowRate: number;
            averageStableBorrowRate: number;
            liquidityIndex: string;
            variableBorrowIndex: string;
            lastUpdateTimestamp: number;
            rewards?: RewardsList;
            decimals: number;
            config: {
                [modeId: string]: LenderConfigData;
            };
            collateralActive: boolean;
            borrowingEnabled: boolean;
            depositsEnabled: boolean;
            hasStable: boolean;
            isActive: boolean;
            isFrozen: boolean;
            eMode: {
                label: string;
                category: number;
                borrowCollateralFactor: number;
                collateralFactor: number;
                priceSource: string;
            };
            borrowCap: number;
            supplyCap: number;
            debtCeiling: number;
            params?: {
                metadata: {
                    aToken: string;
                    vToken: string;
                    sToken: string;
                };
            };
        };
    };
    chainId: string;
}
export declare enum AaveTypeGetUserReserveIndexes {
    currentATokenBalance = 0,
    currentStableDebt = 1,
    currentVariableDebt = 2,
    principalStableDebt = 3,
    scaledVariableDebt = 4,
    stableBorrowRate = 5,
    liquidityRate = 6,
    stableRateLastUpdated = 7,
    usageAsCollateralEnabled = 8
}
export declare enum YldrTypeGetUserReserveIndexes {
    currentYTokenBalance = 0,
    currentVariableDebt = 1,
    scaledVariableDebt = 2,
    liquidityRate = 3,
    usageAsCollateralEnabled = 4
}
export declare enum YLDRTypeGetReserveDataIndexes {
    accruedToTreasuryScaled = 0,
    totalYToken = 1,
    totalVariableDebt = 2,
    liquidityRate = 3,
    variableBorrowRate = 4,
    liquidityIndex = 5,
    variableBorrowIndex = 6,
    lastUpdateTimestamp = 7
}
export declare enum YLDRTypeGetReserveConfigurationData {
    decimals = 0,
    ltv = 1,
    liquidationThreshold = 2,
    liquidationBonus = 3,
    reserveFactor = 4,
    usageAsCollateralEnabled = 5,
    borrowingEnabled = 6,
    isActive = 7,
    isFrozen = 8
}
//# sourceMappingURL=aave-v3-types.d.ts.map