import type { Address } from 'viem';
export interface LTVInfo {
    collateral: Address;
    borrowLTV: bigint;
    liquidationLTV: bigint;
    initialLiquidationLTV: bigint;
    targetTimestamp: bigint;
    rampDuration: bigint;
}
export interface InterestRateInfo {
    cash: bigint;
    borrows: bigint;
    borrowSPY: bigint;
    borrowAPY: bigint;
    supplyAPY: bigint;
}
export interface InterestRateModelDetailedInfo {
    interestRateModel: Address;
    interestRateModelType: number;
    interestRateModelParams: string;
}
export interface VaultInterestRateModelInfo {
    queryFailure: boolean;
    queryFailureReason: string;
    vault: Address;
    interestRateModel: Address;
    interestRateInfo: InterestRateInfo[];
    interestRateModelInfo: InterestRateModelDetailedInfo;
}
export interface AssetPriceInfo {
    queryFailure: boolean;
    queryFailureReason: string;
    timestamp: bigint;
    oracle: Address;
    asset: Address;
    unitOfAccount: Address;
    amountIn: bigint;
    amountOutMid: bigint;
    amountOutBid: bigint;
    amountOutAsk: bigint;
}
export interface OracleDetailedInfo {
    oracle: Address;
    name: string;
    oracleInfo: string;
}
export interface VaultInfoFull {
    timestamp: bigint;
    vault: Address;
    vaultName: string;
    vaultSymbol: string;
    vaultDecimals: bigint;
    asset: Address;
    assetName: string;
    assetSymbol: string;
    assetDecimals: bigint;
    unitOfAccount: Address;
    unitOfAccountName: string;
    unitOfAccountSymbol: string;
    unitOfAccountDecimals: bigint;
    totalShares: bigint;
    totalCash: bigint;
    totalBorrowed: bigint;
    totalAssets: bigint;
    accumulatedFeesShares: bigint;
    accumulatedFeesAssets: bigint;
    governorFeeReceiver: Address;
    protocolFeeReceiver: Address;
    protocolFeeShare: bigint;
    interestFee: bigint;
    hookedOperations: bigint;
    configFlags: bigint;
    supplyCap: bigint;
    borrowCap: bigint;
    maxLiquidationDiscount: bigint;
    liquidationCoolOffTime: bigint;
    dToken: Address;
    oracle: Address;
    interestRateModel: Address;
    hookTarget: Address;
    evc: Address;
    protocolConfig: Address;
    balanceTracker: Address;
    permit2: Address;
    creator: Address;
    governorAdmin: Address;
    irmInfo: VaultInterestRateModelInfo;
    collateralLTVInfo: LTVInfo[];
    liabilityPriceInfo: AssetPriceInfo;
    collateralPriceInfo: AssetPriceInfo[];
    oracleInfo: OracleDetailedInfo;
    backupAssetPriceInfo: AssetPriceInfo;
    backupAssetOracleInfo: OracleDetailedInfo;
}
export interface Cluster {
    governor: Address;
    vaults: Address[];
    vaultData: Map<Address, VaultInfoFull>;
}
export interface UserPosition {
    vault: Address;
    balance: bigint;
    debt: bigint;
}
export interface SubAccountPositions {
    subAccountId: number;
    positions: UserPosition[];
}
export interface UserPositionsResult {
    account: Address;
    subAccounts: SubAccountPositions[];
}
//# sourceMappingURL=types.d.ts.map