Everything evaluateClose needs, already read from the chain.

interface EvaluateCloseInput {
    canMint: boolean;
    collateral: bigint;
    entireDebt: bigint;
    isRecoveryMode: boolean;
    musdBalance: bigint;
    price: bigint;
    sortedTrovesSize?: bigint;
    status: number;
    systemColl: bigint;
    systemDebt: bigint;
    troveOwnersCount?: bigint;
}

Properties

canMint: boolean
collateral: bigint
entireDebt: bigint
isRecoveryMode: boolean
musdBalance: bigint
price: bigint
sortedTrovesSize?: bigint
status: number
systemColl: bigint
systemDebt: bigint
troveOwnersCount?: bigint

TroveManager.getTroveOwnersCount() and SortedTroves.getSize(), for the last Trove gate (MK-074). Both optional on the same rule previewOpen.troveStatus follows (MK-047): undefined is "not asked", not "there is one", so the gate is simply not evaluated and not reported. previewClose always supplies them.