Interface for TinteroVault contract
function totalAssetsDelegated() external view returns (uint256);
function delegatedTo(address delegate) external view returns (uint256);
function totalAssetsLent() external view returns (uint256);
function lentTo(address loan) external view returns (uint256);
function isLoan(address loan) external view returns (bool);
function askDelegation(uint256 amount) external;
function refundDelegation(uint256 amount) external;
function forceRefundDelegation(address delegate, uint256 amount) external;
function requestLoan( address collateralCollection, address beneficiary, uint24 defaultThreshold, PaymentLib.Payment[] calldata payments, uint256[] calldata collateralTokenIds, bytes32 salt ) external;
function pushPayments(ITinteroLoan loan, uint256[] calldata collateralTokenIds, PaymentLib.Payment[] calldata payments) external;
function onDebit(uint256 principal) external;
function pushTranches(ITinteroLoan loan, uint96[] calldata paymentIndexes, address[] calldata recipients) external;
n
function fundN(ITinteroLoan loan, uint256 n) external;
function repossess(ITinteroLoan loan, uint256 start, uint256 end, address receiver) external;
function upgradeLoan(ITinteroLoan loan, address newImplementation, bytes calldata data) external;
event LoanCreated(address loan, address collateralCollection, address beneficiary, uint24 defaultThreshold);
event DelegateAssets(address delegate, uint256 amount);
event DelegateRefunded(address delegate, uint256 amount);
error DuplicatedLoan();
error OnlyManagedLoan();