Variable multiSourceLoanAbiConst

multiSourceLoanAbi: readonly [{
    inputs: readonly [{
        internalType: "address";
        name: "loanLiquidator";
        type: "address";
    }, {
        components: readonly [{
            internalType: "address";
            name: "recipient";
            type: "address";
        }, {
            internalType: "uint256";
            name: "fraction";
            type: "uint256";
        }];
        internalType: "struct WithProtocolFee.ProtocolFee";
        name: "protocolFee";
        type: "tuple";
    }, {
        internalType: "address";
        name: "currencyManager";
        type: "address";
    }, {
        internalType: "address";
        name: "collectionManager";
        type: "address";
    }, {
        internalType: "uint256";
        name: "maxTranches";
        type: "uint256";
    }, {
        internalType: "uint256";
        name: "minLockPeriod";
        type: "uint256";
    }, {
        internalType: "address";
        name: "delegateRegistry";
        type: "address";
    }, {
        internalType: "address";
        name: "loanManagerRegistry";
        type: "address";
    }, {
        internalType: "address";
        name: "flashActionContract";
        type: "address";
    }, {
        internalType: "uint256";
        name: "minWaitTime";
        type: "uint256";
    }];
    stateMutability: "nonpayable";
    type: "constructor";
}, {
    inputs: readonly [];
    name: "DOMAIN_SEPARATOR";
    outputs: readonly [{
        internalType: "bytes32";
        name: "";
        type: "bytes32";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [];
    name: "FEE_UPDATE_NOTICE";
    outputs: readonly [{
        internalType: "uint256";
        name: "";
        type: "uint256";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [];
    name: "INITIAL_DOMAIN_SEPARATOR";
    outputs: readonly [{
        internalType: "bytes32";
        name: "";
        type: "bytes32";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [];
    name: "MAX_AUCTION_DURATION";
    outputs: readonly [{
        internalType: "uint48";
        name: "";
        type: "uint48";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [];
    name: "MIN_AUCTION_DURATION";
    outputs: readonly [{
        internalType: "uint48";
        name: "";
        type: "uint48";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [];
    name: "MIN_BID_LIQUIDATION";
    outputs: readonly [{
        internalType: "uint256";
        name: "";
        type: "uint256";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [];
    name: "MIN_WAIT_TIME";
    outputs: readonly [{
        internalType: "uint256";
        name: "";
        type: "uint256";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [];
    name: "VERSION";
    outputs: readonly [{
        internalType: "bytes";
        name: "";
        type: "bytes";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [{
        components: readonly [{
            internalType: "uint256";
            name: "renegotiationId";
            type: "uint256";
        }, {
            internalType: "uint256";
            name: "loanId";
            type: "uint256";
        }, {
            internalType: "address";
            name: "lender";
            type: "address";
        }, {
            internalType: "uint256";
            name: "fee";
            type: "uint256";
        }, {
            internalType: "uint256[]";
            name: "trancheIndex";
            type: "uint256[]";
        }, {
            internalType: "uint256";
            name: "principalAmount";
            type: "uint256";
        }, {
            internalType: "uint256";
            name: "aprBps";
            type: "uint256";
        }, {
            internalType: "uint256";
            name: "expirationTime";
            type: "uint256";
        }, {
            internalType: "uint256";
            name: "duration";
            type: "uint256";
        }];
        internalType: "struct IMultiSourceLoan.RenegotiationOffer";
        name: "_renegotiationOffer";
        type: "tuple";
    }, {
        components: readonly [{
            internalType: "address";
            name: "borrower";
            type: "address";
        }, {
            internalType: "uint256";
            name: "nftCollateralTokenId";
            type: "uint256";
        }, {
            internalType: "address";
            name: "nftCollateralAddress";
            type: "address";
        }, {
            internalType: "address";
            name: "principalAddress";
            type: "address";
        }, {
            internalType: "uint256";
            name: "principalAmount";
            type: "uint256";
        }, {
            internalType: "uint256";
            name: "startTime";
            type: "uint256";
        }, {
            internalType: "uint256";
            name: "duration";
            type: "uint256";
        }, {
            components: readonly [{
                internalType: "uint256";
                name: "loanId";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "floor";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "principalAmount";
                type: "uint256";
            }, {
                internalType: "address";
                name: "lender";
                type: "address";
            }, {
                internalType: "uint256";
                name: "accruedInterest";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "startTime";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "aprBps";
                type: "uint256";
            }];
            internalType: "struct IMultiSourceLoan.Tranche[]";
            name: "tranche";
            type: "tuple[]";
        }, {
            internalType: "uint256";
            name: "protocolFee";
            type: "uint256";
        }];
        internalType: "struct IMultiSourceLoan.Loan";
        name: "_loan";
        type: "tuple";
    }, {
        internalType: "bytes";
        name: "_renegotiationOfferSignature";
        type: "bytes";
    }];
    name: "addNewTranche";
    outputs: readonly [{
        internalType: "uint256";
        name: "";
        type: "uint256";
    }, {
        components: readonly [{
            internalType: "address";
            name: "borrower";
            type: "address";
        }, {
            internalType: "uint256";
            name: "nftCollateralTokenId";
            type: "uint256";
        }, {
            internalType: "address";
            name: "nftCollateralAddress";
            type: "address";
        }, {
            internalType: "address";
            name: "principalAddress";
            type: "address";
        }, {
            internalType: "uint256";
            name: "principalAmount";
            type: "uint256";
        }, {
            internalType: "uint256";
            name: "startTime";
            type: "uint256";
        }, {
            internalType: "uint256";
            name: "duration";
            type: "uint256";
        }, {
            components: readonly [{
                internalType: "uint256";
                name: "loanId";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "floor";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "principalAmount";
                type: "uint256";
            }, {
                internalType: "address";
                name: "lender";
                type: "address";
            }, {
                internalType: "uint256";
                name: "accruedInterest";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "startTime";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "aprBps";
                type: "uint256";
            }];
            internalType: "struct IMultiSourceLoan.Tranche[]";
            name: "tranche";
            type: "tuple[]";
        }, {
            internalType: "uint256";
            name: "protocolFee";
            type: "uint256";
        }];
        internalType: "struct IMultiSourceLoan.Loan";
        name: "";
        type: "tuple";
    }];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "address";
        name: "_contract";
        type: "address";
    }];
    name: "addWhitelistedCallbackContract";
    outputs: readonly [];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "uint256";
        name: "_minOfferId";
        type: "uint256";
    }];
    name: "cancelAllOffers";
    outputs: readonly [];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "uint256";
        name: "_offerId";
        type: "uint256";
    }];
    name: "cancelOffer";
    outputs: readonly [];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "uint256";
        name: "_renegotiationId";
        type: "uint256";
    }];
    name: "cancelRenegotiationOffer";
    outputs: readonly [];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "uint256";
        name: "_loanId";
        type: "uint256";
    }, {
        components: readonly [{
            internalType: "address";
            name: "borrower";
            type: "address";
        }, {
            internalType: "uint256";
            name: "nftCollateralTokenId";
            type: "uint256";
        }, {
            internalType: "address";
            name: "nftCollateralAddress";
            type: "address";
        }, {
            internalType: "address";
            name: "principalAddress";
            type: "address";
        }, {
            internalType: "uint256";
            name: "principalAmount";
            type: "uint256";
        }, {
            internalType: "uint256";
            name: "startTime";
            type: "uint256";
        }, {
            internalType: "uint256";
            name: "duration";
            type: "uint256";
        }, {
            components: readonly [{
                internalType: "uint256";
                name: "loanId";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "floor";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "principalAmount";
                type: "uint256";
            }, {
                internalType: "address";
                name: "lender";
                type: "address";
            }, {
                internalType: "uint256";
                name: "accruedInterest";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "startTime";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "aprBps";
                type: "uint256";
            }];
            internalType: "struct IMultiSourceLoan.Tranche[]";
            name: "tranche";
            type: "tuple[]";
        }, {
            internalType: "uint256";
            name: "protocolFee";
            type: "uint256";
        }];
        internalType: "struct IMultiSourceLoan.Loan";
        name: "loan";
        type: "tuple";
    }, {
        internalType: "address";
        name: "_delegate";
        type: "address";
    }, {
        internalType: "bytes32";
        name: "_rights";
        type: "bytes32";
    }, {
        internalType: "bool";
        name: "_value";
        type: "bool";
    }];
    name: "delegate";
    outputs: readonly [];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [{
        components: readonly [{
            components: readonly [{
                components: readonly [{
                    components: readonly [{
                        internalType: "uint256";
                        name: "offerId";
                        type: "uint256";
                    }, {
                        internalType: "address";
                        name: "lender";
                        type: "address";
                    }, {
                        internalType: "uint256";
                        name: "fee";
                        type: "uint256";
                    }, {
                        internalType: "uint256";
                        name: "capacity";
                        type: "uint256";
                    }, {
                        internalType: "address";
                        name: "nftCollateralAddress";
                        type: "address";
                    }, {
                        internalType: "uint256";
                        name: "nftCollateralTokenId";
                        type: "uint256";
                    }, {
                        internalType: "address";
                        name: "principalAddress";
                        type: "address";
                    }, {
                        internalType: "uint256";
                        name: "principalAmount";
                        type: "uint256";
                    }, {
                        internalType: "uint256";
                        name: "aprBps";
                        type: "uint256";
                    }, {
                        internalType: "uint256";
                        name: "expirationTime";
                        type: "uint256";
                    }, {
                        internalType: "uint256";
                        name: "duration";
                        type: "uint256";
                    }, {
                        internalType: "uint256";
                        name: "maxSeniorRepayment";
                        type: "uint256";
                    }, {
                        components: readonly [{
                            internalType: "address";
                            name: "validator";
                            type: "address";
                        }, {
                            internalType: "bytes";
                            name: "arguments";
                            type: "bytes";
                        }];
                        internalType: "struct IBaseLoan.OfferValidator[]";
                        name: "validators";
                        type: "tuple[]";
                    }];
                    internalType: "struct IMultiSourceLoan.LoanOffer";
                    name: "offer";
                    type: "tuple";
                }, {
                    internalType: "uint256";
                    name: "amount";
                    type: "uint256";
                }, {
                    internalType: "bytes";
                    name: "lenderOfferSignature";
                    type: "bytes";
                }];
                internalType: "struct IMultiSourceLoan.OfferExecution[]";
                name: "offerExecution";
                type: "tuple[]";
            }, {
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "duration";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "expirationTime";
                type: "uint256";
            }, {
                internalType: "address";
                name: "principalReceiver";
                type: "address";
            }, {
                internalType: "bytes";
                name: "callbackData";
                type: "bytes";
            }];
            internalType: "struct IMultiSourceLoan.ExecutionData";
            name: "executionData";
            type: "tuple";
        }, {
            internalType: "address";
            name: "borrower";
            type: "address";
        }, {
            internalType: "bytes";
            name: "borrowerOfferSignature";
            type: "bytes";
        }];
        internalType: "struct IMultiSourceLoan.LoanExecutionData";
        name: "_loanExecutionData";
        type: "tuple";
    }];
    name: "emitLoan";
    outputs: readonly [{
        internalType: "uint256";
        name: "";
        type: "uint256";
    }, {
        components: readonly [{
            internalType: "address";
            name: "borrower";
            type: "address";
        }, {
            internalType: "uint256";
            name: "nftCollateralTokenId";
            type: "uint256";
        }, {
            internalType: "address";
            name: "nftCollateralAddress";
            type: "address";
        }, {
            internalType: "address";
            name: "principalAddress";
            type: "address";
        }, {
            internalType: "uint256";
            name: "principalAmount";
            type: "uint256";
        }, {
            internalType: "uint256";
            name: "startTime";
            type: "uint256";
        }, {
            internalType: "uint256";
            name: "duration";
            type: "uint256";
        }, {
            components: readonly [{
                internalType: "uint256";
                name: "loanId";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "floor";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "principalAmount";
                type: "uint256";
            }, {
                internalType: "address";
                name: "lender";
                type: "address";
            }, {
                internalType: "uint256";
                name: "accruedInterest";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "startTime";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "aprBps";
                type: "uint256";
            }];
            internalType: "struct IMultiSourceLoan.Tranche[]";
            name: "tranche";
            type: "tuple[]";
        }, {
            internalType: "uint256";
            name: "protocolFee";
            type: "uint256";
        }];
        internalType: "struct IMultiSourceLoan.Loan";
        name: "";
        type: "tuple";
    }];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "uint256";
        name: "_loanId";
        type: "uint256";
    }, {
        components: readonly [{
            internalType: "address";
            name: "borrower";
            type: "address";
        }, {
            internalType: "uint256";
            name: "nftCollateralTokenId";
            type: "uint256";
        }, {
            internalType: "address";
            name: "nftCollateralAddress";
            type: "address";
        }, {
            internalType: "address";
            name: "principalAddress";
            type: "address";
        }, {
            internalType: "uint256";
            name: "principalAmount";
            type: "uint256";
        }, {
            internalType: "uint256";
            name: "startTime";
            type: "uint256";
        }, {
            internalType: "uint256";
            name: "duration";
            type: "uint256";
        }, {
            components: readonly [{
                internalType: "uint256";
                name: "loanId";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "floor";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "principalAmount";
                type: "uint256";
            }, {
                internalType: "address";
                name: "lender";
                type: "address";
            }, {
                internalType: "uint256";
                name: "accruedInterest";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "startTime";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "aprBps";
                type: "uint256";
            }];
            internalType: "struct IMultiSourceLoan.Tranche[]";
            name: "tranche";
            type: "tuple[]";
        }, {
            internalType: "uint256";
            name: "protocolFee";
            type: "uint256";
        }];
        internalType: "struct IMultiSourceLoan.Loan";
        name: "_loan";
        type: "tuple";
    }, {
        internalType: "address";
        name: "_target";
        type: "address";
    }, {
        internalType: "bytes";
        name: "_data";
        type: "bytes";
    }];
    name: "executeFlashAction";
    outputs: readonly [];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [];
    name: "getCollectionManager";
    outputs: readonly [{
        internalType: "address";
        name: "";
        type: "address";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [];
    name: "getCurrencyManager";
    outputs: readonly [{
        internalType: "address";
        name: "";
        type: "address";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [];
    name: "getDelegateRegistry";
    outputs: readonly [{
        internalType: "address";
        name: "";
        type: "address";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [];
    name: "getFlashActionContract";
    outputs: readonly [{
        internalType: "address";
        name: "";
        type: "address";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [];
    name: "getLiquidationAuctionDuration";
    outputs: readonly [{
        internalType: "uint48";
        name: "";
        type: "uint48";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [];
    name: "getLiquidator";
    outputs: readonly [{
        internalType: "address";
        name: "";
        type: "address";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "uint256";
        name: "_loanId";
        type: "uint256";
    }];
    name: "getLoanHash";
    outputs: readonly [{
        internalType: "bytes32";
        name: "";
        type: "bytes32";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [];
    name: "getLoanManagerRegistry";
    outputs: readonly [{
        internalType: "contract ILoanManagerRegistry";
        name: "";
        type: "address";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [];
    name: "getMaxTranches";
    outputs: readonly [{
        internalType: "uint256";
        name: "";
        type: "uint256";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [];
    name: "getMinImprovementApr";
    outputs: readonly [{
        internalType: "uint256";
        name: "";
        type: "uint256";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [];
    name: "getMinLockPeriod";
    outputs: readonly [{
        internalType: "uint256";
        name: "";
        type: "uint256";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [];
    name: "getPendingProtocolFee";
    outputs: readonly [{
        components: readonly [{
            internalType: "address";
            name: "recipient";
            type: "address";
        }, {
            internalType: "uint256";
            name: "fraction";
            type: "uint256";
        }];
        internalType: "struct WithProtocolFee.ProtocolFee";
        name: "";
        type: "tuple";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [];
    name: "getPendingProtocolFeeSetTime";
    outputs: readonly [{
        internalType: "uint256";
        name: "";
        type: "uint256";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [];
    name: "getProtocolFee";
    outputs: readonly [{
        components: readonly [{
            internalType: "address";
            name: "recipient";
            type: "address";
        }, {
            internalType: "uint256";
            name: "fraction";
            type: "uint256";
        }];
        internalType: "struct WithProtocolFee.ProtocolFee";
        name: "";
        type: "tuple";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [];
    name: "getTotalLoansIssued";
    outputs: readonly [{
        internalType: "uint256";
        name: "";
        type: "uint256";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "address";
        name: "_lender";
        type: "address";
    }, {
        internalType: "uint256";
        name: "_offerId";
        type: "uint256";
    }];
    name: "getUsedCapacity";
    outputs: readonly [{
        internalType: "uint256";
        name: "";
        type: "uint256";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "address";
        name: "user";
        type: "address";
    }, {
        internalType: "uint256";
        name: "offerId";
        type: "uint256";
    }];
    name: "isOfferCancelled";
    outputs: readonly [{
        internalType: "bool";
        name: "notActive";
        type: "bool";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "address";
        name: "user";
        type: "address";
    }, {
        internalType: "uint256";
        name: "renegotiationIf";
        type: "uint256";
    }];
    name: "isRenegotiationOfferCancelled";
    outputs: readonly [{
        internalType: "bool";
        name: "notActive";
        type: "bool";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "address";
        name: "_contract";
        type: "address";
    }];
    name: "isWhitelistedCallbackContract";
    outputs: readonly [{
        internalType: "bool";
        name: "";
        type: "bool";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "uint256";
        name: "_loanId";
        type: "uint256";
    }, {
        components: readonly [{
            internalType: "address";
            name: "borrower";
            type: "address";
        }, {
            internalType: "uint256";
            name: "nftCollateralTokenId";
            type: "uint256";
        }, {
            internalType: "address";
            name: "nftCollateralAddress";
            type: "address";
        }, {
            internalType: "address";
            name: "principalAddress";
            type: "address";
        }, {
            internalType: "uint256";
            name: "principalAmount";
            type: "uint256";
        }, {
            internalType: "uint256";
            name: "startTime";
            type: "uint256";
        }, {
            internalType: "uint256";
            name: "duration";
            type: "uint256";
        }, {
            components: readonly [{
                internalType: "uint256";
                name: "loanId";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "floor";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "principalAmount";
                type: "uint256";
            }, {
                internalType: "address";
                name: "lender";
                type: "address";
            }, {
                internalType: "uint256";
                name: "accruedInterest";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "startTime";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "aprBps";
                type: "uint256";
            }];
            internalType: "struct IMultiSourceLoan.Tranche[]";
            name: "tranche";
            type: "tuple[]";
        }, {
            internalType: "uint256";
            name: "protocolFee";
            type: "uint256";
        }];
        internalType: "struct IMultiSourceLoan.Loan";
        name: "_loan";
        type: "tuple";
    }];
    name: "liquidateLoan";
    outputs: readonly [{
        internalType: "bytes";
        name: "";
        type: "bytes";
    }];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "uint256";
        name: "_loanId";
        type: "uint256";
    }, {
        components: readonly [{
            internalType: "address";
            name: "borrower";
            type: "address";
        }, {
            internalType: "uint256";
            name: "nftCollateralTokenId";
            type: "uint256";
        }, {
            internalType: "address";
            name: "nftCollateralAddress";
            type: "address";
        }, {
            internalType: "address";
            name: "principalAddress";
            type: "address";
        }, {
            internalType: "uint256";
            name: "principalAmount";
            type: "uint256";
        }, {
            internalType: "uint256";
            name: "startTime";
            type: "uint256";
        }, {
            internalType: "uint256";
            name: "duration";
            type: "uint256";
        }, {
            components: readonly [{
                internalType: "uint256";
                name: "loanId";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "floor";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "principalAmount";
                type: "uint256";
            }, {
                internalType: "address";
                name: "lender";
                type: "address";
            }, {
                internalType: "uint256";
                name: "accruedInterest";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "startTime";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "aprBps";
                type: "uint256";
            }];
            internalType: "struct IMultiSourceLoan.Tranche[]";
            name: "tranche";
            type: "tuple[]";
        }, {
            internalType: "uint256";
            name: "protocolFee";
            type: "uint256";
        }];
        internalType: "struct IMultiSourceLoan.Loan";
        name: "_loan";
        type: "tuple";
    }];
    name: "loanLiquidated";
    outputs: readonly [];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "address";
        name: "user";
        type: "address";
    }];
    name: "minOfferId";
    outputs: readonly [{
        internalType: "uint256";
        name: "minOfferId";
        type: "uint256";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "bytes[]";
        name: "data";
        type: "bytes[]";
    }];
    name: "multicall";
    outputs: readonly [{
        internalType: "bytes[]";
        name: "results";
        type: "bytes[]";
    }];
    stateMutability: "payable";
    type: "function";
}, {
    inputs: readonly [];
    name: "name";
    outputs: readonly [{
        internalType: "string";
        name: "";
        type: "string";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "address";
        name: "";
        type: "address";
    }, {
        internalType: "address";
        name: "";
        type: "address";
    }, {
        internalType: "uint256";
        name: "";
        type: "uint256";
    }, {
        internalType: "bytes";
        name: "";
        type: "bytes";
    }];
    name: "onERC721Received";
    outputs: readonly [{
        internalType: "bytes4";
        name: "";
        type: "bytes4";
    }];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [];
    name: "owner";
    outputs: readonly [{
        internalType: "address";
        name: "";
        type: "address";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [];
    name: "pendingOwner";
    outputs: readonly [{
        internalType: "address";
        name: "";
        type: "address";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [];
    name: "pendingOwnerTime";
    outputs: readonly [{
        internalType: "uint256";
        name: "";
        type: "uint256";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "uint256";
        name: "_loanId";
        type: "uint256";
    }, {
        components: readonly [{
            internalType: "address";
            name: "borrower";
            type: "address";
        }, {
            internalType: "uint256";
            name: "nftCollateralTokenId";
            type: "uint256";
        }, {
            internalType: "address";
            name: "nftCollateralAddress";
            type: "address";
        }, {
            internalType: "address";
            name: "principalAddress";
            type: "address";
        }, {
            internalType: "uint256";
            name: "principalAmount";
            type: "uint256";
        }, {
            internalType: "uint256";
            name: "startTime";
            type: "uint256";
        }, {
            internalType: "uint256";
            name: "duration";
            type: "uint256";
        }, {
            components: readonly [{
                internalType: "uint256";
                name: "loanId";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "floor";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "principalAmount";
                type: "uint256";
            }, {
                internalType: "address";
                name: "lender";
                type: "address";
            }, {
                internalType: "uint256";
                name: "accruedInterest";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "startTime";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "aprBps";
                type: "uint256";
            }];
            internalType: "struct IMultiSourceLoan.Tranche[]";
            name: "tranche";
            type: "tuple[]";
        }, {
            internalType: "uint256";
            name: "protocolFee";
            type: "uint256";
        }];
        internalType: "struct IMultiSourceLoan.Loan";
        name: "_loan";
        type: "tuple";
    }, {
        components: readonly [{
            components: readonly [{
                components: readonly [{
                    components: readonly [{
                        internalType: "uint256";
                        name: "offerId";
                        type: "uint256";
                    }, {
                        internalType: "address";
                        name: "lender";
                        type: "address";
                    }, {
                        internalType: "uint256";
                        name: "fee";
                        type: "uint256";
                    }, {
                        internalType: "uint256";
                        name: "capacity";
                        type: "uint256";
                    }, {
                        internalType: "address";
                        name: "nftCollateralAddress";
                        type: "address";
                    }, {
                        internalType: "uint256";
                        name: "nftCollateralTokenId";
                        type: "uint256";
                    }, {
                        internalType: "address";
                        name: "principalAddress";
                        type: "address";
                    }, {
                        internalType: "uint256";
                        name: "principalAmount";
                        type: "uint256";
                    }, {
                        internalType: "uint256";
                        name: "aprBps";
                        type: "uint256";
                    }, {
                        internalType: "uint256";
                        name: "expirationTime";
                        type: "uint256";
                    }, {
                        internalType: "uint256";
                        name: "duration";
                        type: "uint256";
                    }, {
                        internalType: "uint256";
                        name: "maxSeniorRepayment";
                        type: "uint256";
                    }, {
                        components: readonly [{
                            internalType: "address";
                            name: "validator";
                            type: "address";
                        }, {
                            internalType: "bytes";
                            name: "arguments";
                            type: "bytes";
                        }];
                        internalType: "struct IBaseLoan.OfferValidator[]";
                        name: "validators";
                        type: "tuple[]";
                    }];
                    internalType: "struct IMultiSourceLoan.LoanOffer";
                    name: "offer";
                    type: "tuple";
                }, {
                    internalType: "uint256";
                    name: "amount";
                    type: "uint256";
                }, {
                    internalType: "bytes";
                    name: "lenderOfferSignature";
                    type: "bytes";
                }];
                internalType: "struct IMultiSourceLoan.OfferExecution[]";
                name: "offerExecution";
                type: "tuple[]";
            }, {
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "duration";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "expirationTime";
                type: "uint256";
            }, {
                internalType: "address";
                name: "principalReceiver";
                type: "address";
            }, {
                internalType: "bytes";
                name: "callbackData";
                type: "bytes";
            }];
            internalType: "struct IMultiSourceLoan.ExecutionData";
            name: "executionData";
            type: "tuple";
        }, {
            internalType: "address";
            name: "borrower";
            type: "address";
        }, {
            internalType: "bytes";
            name: "borrowerOfferSignature";
            type: "bytes";
        }];
        internalType: "struct IMultiSourceLoan.LoanExecutionData";
        name: "_loanExecutionData";
        type: "tuple";
    }];
    name: "refinanceFromLoanExecutionData";
    outputs: readonly [{
        internalType: "uint256";
        name: "";
        type: "uint256";
    }, {
        components: readonly [{
            internalType: "address";
            name: "borrower";
            type: "address";
        }, {
            internalType: "uint256";
            name: "nftCollateralTokenId";
            type: "uint256";
        }, {
            internalType: "address";
            name: "nftCollateralAddress";
            type: "address";
        }, {
            internalType: "address";
            name: "principalAddress";
            type: "address";
        }, {
            internalType: "uint256";
            name: "principalAmount";
            type: "uint256";
        }, {
            internalType: "uint256";
            name: "startTime";
            type: "uint256";
        }, {
            internalType: "uint256";
            name: "duration";
            type: "uint256";
        }, {
            components: readonly [{
                internalType: "uint256";
                name: "loanId";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "floor";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "principalAmount";
                type: "uint256";
            }, {
                internalType: "address";
                name: "lender";
                type: "address";
            }, {
                internalType: "uint256";
                name: "accruedInterest";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "startTime";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "aprBps";
                type: "uint256";
            }];
            internalType: "struct IMultiSourceLoan.Tranche[]";
            name: "tranche";
            type: "tuple[]";
        }, {
            internalType: "uint256";
            name: "protocolFee";
            type: "uint256";
        }];
        internalType: "struct IMultiSourceLoan.Loan";
        name: "";
        type: "tuple";
    }];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [{
        components: readonly [{
            internalType: "uint256";
            name: "renegotiationId";
            type: "uint256";
        }, {
            internalType: "uint256";
            name: "loanId";
            type: "uint256";
        }, {
            internalType: "address";
            name: "lender";
            type: "address";
        }, {
            internalType: "uint256";
            name: "fee";
            type: "uint256";
        }, {
            internalType: "uint256[]";
            name: "trancheIndex";
            type: "uint256[]";
        }, {
            internalType: "uint256";
            name: "principalAmount";
            type: "uint256";
        }, {
            internalType: "uint256";
            name: "aprBps";
            type: "uint256";
        }, {
            internalType: "uint256";
            name: "expirationTime";
            type: "uint256";
        }, {
            internalType: "uint256";
            name: "duration";
            type: "uint256";
        }];
        internalType: "struct IMultiSourceLoan.RenegotiationOffer";
        name: "_renegotiationOffer";
        type: "tuple";
    }, {
        components: readonly [{
            internalType: "address";
            name: "borrower";
            type: "address";
        }, {
            internalType: "uint256";
            name: "nftCollateralTokenId";
            type: "uint256";
        }, {
            internalType: "address";
            name: "nftCollateralAddress";
            type: "address";
        }, {
            internalType: "address";
            name: "principalAddress";
            type: "address";
        }, {
            internalType: "uint256";
            name: "principalAmount";
            type: "uint256";
        }, {
            internalType: "uint256";
            name: "startTime";
            type: "uint256";
        }, {
            internalType: "uint256";
            name: "duration";
            type: "uint256";
        }, {
            components: readonly [{
                internalType: "uint256";
                name: "loanId";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "floor";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "principalAmount";
                type: "uint256";
            }, {
                internalType: "address";
                name: "lender";
                type: "address";
            }, {
                internalType: "uint256";
                name: "accruedInterest";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "startTime";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "aprBps";
                type: "uint256";
            }];
            internalType: "struct IMultiSourceLoan.Tranche[]";
            name: "tranche";
            type: "tuple[]";
        }, {
            internalType: "uint256";
            name: "protocolFee";
            type: "uint256";
        }];
        internalType: "struct IMultiSourceLoan.Loan";
        name: "_loan";
        type: "tuple";
    }, {
        internalType: "bytes";
        name: "_renegotiationOfferSignature";
        type: "bytes";
    }];
    name: "refinanceFull";
    outputs: readonly [{
        internalType: "uint256";
        name: "";
        type: "uint256";
    }, {
        components: readonly [{
            internalType: "address";
            name: "borrower";
            type: "address";
        }, {
            internalType: "uint256";
            name: "nftCollateralTokenId";
            type: "uint256";
        }, {
            internalType: "address";
            name: "nftCollateralAddress";
            type: "address";
        }, {
            internalType: "address";
            name: "principalAddress";
            type: "address";
        }, {
            internalType: "uint256";
            name: "principalAmount";
            type: "uint256";
        }, {
            internalType: "uint256";
            name: "startTime";
            type: "uint256";
        }, {
            internalType: "uint256";
            name: "duration";
            type: "uint256";
        }, {
            components: readonly [{
                internalType: "uint256";
                name: "loanId";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "floor";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "principalAmount";
                type: "uint256";
            }, {
                internalType: "address";
                name: "lender";
                type: "address";
            }, {
                internalType: "uint256";
                name: "accruedInterest";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "startTime";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "aprBps";
                type: "uint256";
            }];
            internalType: "struct IMultiSourceLoan.Tranche[]";
            name: "tranche";
            type: "tuple[]";
        }, {
            internalType: "uint256";
            name: "protocolFee";
            type: "uint256";
        }];
        internalType: "struct IMultiSourceLoan.Loan";
        name: "";
        type: "tuple";
    }];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [{
        components: readonly [{
            internalType: "uint256";
            name: "renegotiationId";
            type: "uint256";
        }, {
            internalType: "uint256";
            name: "loanId";
            type: "uint256";
        }, {
            internalType: "address";
            name: "lender";
            type: "address";
        }, {
            internalType: "uint256";
            name: "fee";
            type: "uint256";
        }, {
            internalType: "uint256[]";
            name: "trancheIndex";
            type: "uint256[]";
        }, {
            internalType: "uint256";
            name: "principalAmount";
            type: "uint256";
        }, {
            internalType: "uint256";
            name: "aprBps";
            type: "uint256";
        }, {
            internalType: "uint256";
            name: "expirationTime";
            type: "uint256";
        }, {
            internalType: "uint256";
            name: "duration";
            type: "uint256";
        }];
        internalType: "struct IMultiSourceLoan.RenegotiationOffer";
        name: "_renegotiationOffer";
        type: "tuple";
    }, {
        components: readonly [{
            internalType: "address";
            name: "borrower";
            type: "address";
        }, {
            internalType: "uint256";
            name: "nftCollateralTokenId";
            type: "uint256";
        }, {
            internalType: "address";
            name: "nftCollateralAddress";
            type: "address";
        }, {
            internalType: "address";
            name: "principalAddress";
            type: "address";
        }, {
            internalType: "uint256";
            name: "principalAmount";
            type: "uint256";
        }, {
            internalType: "uint256";
            name: "startTime";
            type: "uint256";
        }, {
            internalType: "uint256";
            name: "duration";
            type: "uint256";
        }, {
            components: readonly [{
                internalType: "uint256";
                name: "loanId";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "floor";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "principalAmount";
                type: "uint256";
            }, {
                internalType: "address";
                name: "lender";
                type: "address";
            }, {
                internalType: "uint256";
                name: "accruedInterest";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "startTime";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "aprBps";
                type: "uint256";
            }];
            internalType: "struct IMultiSourceLoan.Tranche[]";
            name: "tranche";
            type: "tuple[]";
        }, {
            internalType: "uint256";
            name: "protocolFee";
            type: "uint256";
        }];
        internalType: "struct IMultiSourceLoan.Loan";
        name: "_loan";
        type: "tuple";
    }];
    name: "refinancePartial";
    outputs: readonly [{
        internalType: "uint256";
        name: "";
        type: "uint256";
    }, {
        components: readonly [{
            internalType: "address";
            name: "borrower";
            type: "address";
        }, {
            internalType: "uint256";
            name: "nftCollateralTokenId";
            type: "uint256";
        }, {
            internalType: "address";
            name: "nftCollateralAddress";
            type: "address";
        }, {
            internalType: "address";
            name: "principalAddress";
            type: "address";
        }, {
            internalType: "uint256";
            name: "principalAmount";
            type: "uint256";
        }, {
            internalType: "uint256";
            name: "startTime";
            type: "uint256";
        }, {
            internalType: "uint256";
            name: "duration";
            type: "uint256";
        }, {
            components: readonly [{
                internalType: "uint256";
                name: "loanId";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "floor";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "principalAmount";
                type: "uint256";
            }, {
                internalType: "address";
                name: "lender";
                type: "address";
            }, {
                internalType: "uint256";
                name: "accruedInterest";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "startTime";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "aprBps";
                type: "uint256";
            }];
            internalType: "struct IMultiSourceLoan.Tranche[]";
            name: "tranche";
            type: "tuple[]";
        }, {
            internalType: "uint256";
            name: "protocolFee";
            type: "uint256";
        }];
        internalType: "struct IMultiSourceLoan.Loan";
        name: "";
        type: "tuple";
    }];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "address";
        name: "_contract";
        type: "address";
    }];
    name: "removeWhitelistedCallbackContract";
    outputs: readonly [];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [{
        components: readonly [{
            components: readonly [{
                internalType: "uint256";
                name: "loanId";
                type: "uint256";
            }, {
                internalType: "bytes";
                name: "callbackData";
                type: "bytes";
            }, {
                internalType: "bool";
                name: "shouldDelegate";
                type: "bool";
            }];
            internalType: "struct IMultiSourceLoan.SignableRepaymentData";
            name: "data";
            type: "tuple";
        }, {
            components: readonly [{
                internalType: "address";
                name: "borrower";
                type: "address";
            }, {
                internalType: "uint256";
                name: "nftCollateralTokenId";
                type: "uint256";
            }, {
                internalType: "address";
                name: "nftCollateralAddress";
                type: "address";
            }, {
                internalType: "address";
                name: "principalAddress";
                type: "address";
            }, {
                internalType: "uint256";
                name: "principalAmount";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "startTime";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "duration";
                type: "uint256";
            }, {
                components: readonly [{
                    internalType: "uint256";
                    name: "loanId";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "floor";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "principalAmount";
                    type: "uint256";
                }, {
                    internalType: "address";
                    name: "lender";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "accruedInterest";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "startTime";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "aprBps";
                    type: "uint256";
                }];
                internalType: "struct IMultiSourceLoan.Tranche[]";
                name: "tranche";
                type: "tuple[]";
            }, {
                internalType: "uint256";
                name: "protocolFee";
                type: "uint256";
            }];
            internalType: "struct IMultiSourceLoan.Loan";
            name: "loan";
            type: "tuple";
        }, {
            internalType: "bytes";
            name: "borrowerSignature";
            type: "bytes";
        }];
        internalType: "struct IMultiSourceLoan.LoanRepaymentData";
        name: "_repaymentData";
        type: "tuple";
    }];
    name: "repayLoan";
    outputs: readonly [];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "address";
        name: "_newOwner";
        type: "address";
    }];
    name: "requestTransferOwner";
    outputs: readonly [];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "address";
        name: "_delegate";
        type: "address";
    }, {
        internalType: "address";
        name: "_collection";
        type: "address";
    }, {
        internalType: "uint256";
        name: "_tokenId";
        type: "uint256";
    }, {
        internalType: "bytes32";
        name: "_rights";
        type: "bytes32";
    }];
    name: "revokeDelegate";
    outputs: readonly [];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "address";
        name: "_newFlashActionContract";
        type: "address";
    }];
    name: "setFlashActionContract";
    outputs: readonly [];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "uint256";
        name: "__minLockPeriod";
        type: "uint256";
    }];
    name: "setMinLockPeriod";
    outputs: readonly [];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [];
    name: "setProtocolFee";
    outputs: readonly [];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [];
    name: "transferOwnership";
    outputs: readonly [];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "address";
        name: "newOwner";
        type: "address";
    }];
    name: "transferOwnership";
    outputs: readonly [];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "uint48";
        name: "_newDuration";
        type: "uint48";
    }];
    name: "updateLiquidationAuctionDuration";
    outputs: readonly [];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "address";
        name: "__loanLiquidator";
        type: "address";
    }];
    name: "updateLiquidationContract";
    outputs: readonly [];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "uint256";
        name: "_newMinimum";
        type: "uint256";
    }];
    name: "updateMinImprovementApr";
    outputs: readonly [];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [{
        components: readonly [{
            internalType: "address";
            name: "recipient";
            type: "address";
        }, {
            internalType: "uint256";
            name: "fraction";
            type: "uint256";
        }];
        internalType: "struct WithProtocolFee.ProtocolFee";
        name: "_newProtocolFee";
        type: "tuple";
    }];
    name: "updateProtocolFee";
    outputs: readonly [];
    stateMutability: "nonpayable";
    type: "function";
}, {
    anonymous: false;
    inputs: readonly [{
        indexed: false;
        internalType: "address";
        name: "lender";
        type: "address";
    }, {
        indexed: false;
        internalType: "uint256";
        name: "minOfferId";
        type: "uint256";
    }];
    name: "AllOffersCancelled";
    type: "event";
}, {
    anonymous: false;
    inputs: readonly [{
        indexed: false;
        internalType: "uint256";
        name: "loanId";
        type: "uint256";
    }, {
        indexed: false;
        internalType: "address";
        name: "delegate";
        type: "address";
    }, {
        indexed: false;
        internalType: "bytes32";
        name: "_rights";
        type: "bytes32";
    }, {
        indexed: false;
        internalType: "bool";
        name: "value";
        type: "bool";
    }];
    name: "Delegated";
    type: "event";
}, {
    anonymous: false;
    inputs: readonly [{
        indexed: false;
        internalType: "address";
        name: "newFlashActionContract";
        type: "address";
    }];
    name: "FlashActionContractUpdated";
    type: "event";
}, {
    anonymous: false;
    inputs: readonly [{
        indexed: false;
        internalType: "uint256";
        name: "loanId";
        type: "uint256";
    }, {
        indexed: false;
        internalType: "address";
        name: "target";
        type: "address";
    }, {
        indexed: false;
        internalType: "bytes";
        name: "data";
        type: "bytes";
    }];
    name: "FlashActionExecuted";
    type: "event";
}, {
    anonymous: false;
    inputs: readonly [{
        indexed: false;
        internalType: "uint256";
        name: "newDuration";
        type: "uint256";
    }];
    name: "LiquidationAuctionDurationUpdated";
    type: "event";
}, {
    anonymous: false;
    inputs: readonly [{
        indexed: false;
        internalType: "address";
        name: "liquidator";
        type: "address";
    }];
    name: "LiquidationContractUpdated";
    type: "event";
}, {
    anonymous: false;
    inputs: readonly [{
        indexed: false;
        internalType: "uint256";
        name: "loanId";
        type: "uint256";
    }, {
        indexed: false;
        internalType: "uint256[]";
        name: "offerId";
        type: "uint256[]";
    }, {
        components: readonly [{
            internalType: "address";
            name: "borrower";
            type: "address";
        }, {
            internalType: "uint256";
            name: "nftCollateralTokenId";
            type: "uint256";
        }, {
            internalType: "address";
            name: "nftCollateralAddress";
            type: "address";
        }, {
            internalType: "address";
            name: "principalAddress";
            type: "address";
        }, {
            internalType: "uint256";
            name: "principalAmount";
            type: "uint256";
        }, {
            internalType: "uint256";
            name: "startTime";
            type: "uint256";
        }, {
            internalType: "uint256";
            name: "duration";
            type: "uint256";
        }, {
            components: readonly [{
                internalType: "uint256";
                name: "loanId";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "floor";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "principalAmount";
                type: "uint256";
            }, {
                internalType: "address";
                name: "lender";
                type: "address";
            }, {
                internalType: "uint256";
                name: "accruedInterest";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "startTime";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "aprBps";
                type: "uint256";
            }];
            internalType: "struct IMultiSourceLoan.Tranche[]";
            name: "tranche";
            type: "tuple[]";
        }, {
            internalType: "uint256";
            name: "protocolFee";
            type: "uint256";
        }];
        indexed: false;
        internalType: "struct IMultiSourceLoan.Loan";
        name: "loan";
        type: "tuple";
    }, {
        indexed: false;
        internalType: "uint256";
        name: "fee";
        type: "uint256";
    }];
    name: "LoanEmitted";
    type: "event";
}, {
    anonymous: false;
    inputs: readonly [{
        indexed: false;
        internalType: "uint256";
        name: "loanId";
        type: "uint256";
    }];
    name: "LoanForeclosed";
    type: "event";
}, {
    anonymous: false;
    inputs: readonly [{
        indexed: false;
        internalType: "uint256";
        name: "loanId";
        type: "uint256";
    }];
    name: "LoanLiquidated";
    type: "event";
}, {
    anonymous: false;
    inputs: readonly [{
        indexed: false;
        internalType: "uint256";
        name: "renegotiationId";
        type: "uint256";
    }, {
        indexed: false;
        internalType: "uint256";
        name: "oldLoanId";
        type: "uint256";
    }, {
        indexed: false;
        internalType: "uint256";
        name: "newLoanId";
        type: "uint256";
    }, {
        components: readonly [{
            internalType: "address";
            name: "borrower";
            type: "address";
        }, {
            internalType: "uint256";
            name: "nftCollateralTokenId";
            type: "uint256";
        }, {
            internalType: "address";
            name: "nftCollateralAddress";
            type: "address";
        }, {
            internalType: "address";
            name: "principalAddress";
            type: "address";
        }, {
            internalType: "uint256";
            name: "principalAmount";
            type: "uint256";
        }, {
            internalType: "uint256";
            name: "startTime";
            type: "uint256";
        }, {
            internalType: "uint256";
            name: "duration";
            type: "uint256";
        }, {
            components: readonly [{
                internalType: "uint256";
                name: "loanId";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "floor";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "principalAmount";
                type: "uint256";
            }, {
                internalType: "address";
                name: "lender";
                type: "address";
            }, {
                internalType: "uint256";
                name: "accruedInterest";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "startTime";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "aprBps";
                type: "uint256";
            }];
            internalType: "struct IMultiSourceLoan.Tranche[]";
            name: "tranche";
            type: "tuple[]";
        }, {
            internalType: "uint256";
            name: "protocolFee";
            type: "uint256";
        }];
        indexed: false;
        internalType: "struct IMultiSourceLoan.Loan";
        name: "loan";
        type: "tuple";
    }, {
        indexed: false;
        internalType: "uint256";
        name: "fee";
        type: "uint256";
    }];
    name: "LoanRefinanced";
    type: "event";
}, {
    anonymous: false;
    inputs: readonly [{
        indexed: false;
        internalType: "uint256";
        name: "loanId";
        type: "uint256";
    }, {
        indexed: false;
        internalType: "uint256";
        name: "newLoanId";
        type: "uint256";
    }, {
        components: readonly [{
            internalType: "address";
            name: "borrower";
            type: "address";
        }, {
            internalType: "uint256";
            name: "nftCollateralTokenId";
            type: "uint256";
        }, {
            internalType: "address";
            name: "nftCollateralAddress";
            type: "address";
        }, {
            internalType: "address";
            name: "principalAddress";
            type: "address";
        }, {
            internalType: "uint256";
            name: "principalAmount";
            type: "uint256";
        }, {
            internalType: "uint256";
            name: "startTime";
            type: "uint256";
        }, {
            internalType: "uint256";
            name: "duration";
            type: "uint256";
        }, {
            components: readonly [{
                internalType: "uint256";
                name: "loanId";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "floor";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "principalAmount";
                type: "uint256";
            }, {
                internalType: "address";
                name: "lender";
                type: "address";
            }, {
                internalType: "uint256";
                name: "accruedInterest";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "startTime";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "aprBps";
                type: "uint256";
            }];
            internalType: "struct IMultiSourceLoan.Tranche[]";
            name: "tranche";
            type: "tuple[]";
        }, {
            internalType: "uint256";
            name: "protocolFee";
            type: "uint256";
        }];
        indexed: false;
        internalType: "struct IMultiSourceLoan.Loan";
        name: "loan";
        type: "tuple";
    }, {
        indexed: false;
        internalType: "uint256[]";
        name: "offerIds";
        type: "uint256[]";
    }, {
        indexed: false;
        internalType: "uint256";
        name: "totalFee";
        type: "uint256";
    }];
    name: "LoanRefinancedFromNewOffers";
    type: "event";
}, {
    anonymous: false;
    inputs: readonly [{
        indexed: false;
        internalType: "uint256";
        name: "loanId";
        type: "uint256";
    }, {
        indexed: false;
        internalType: "uint256";
        name: "totalRepayment";
        type: "uint256";
    }, {
        indexed: false;
        internalType: "uint256";
        name: "fee";
        type: "uint256";
    }];
    name: "LoanRepaid";
    type: "event";
}, {
    anonymous: false;
    inputs: readonly [{
        indexed: false;
        internalType: "uint256";
        name: "loanId";
        type: "uint256";
    }, {
        indexed: false;
        internalType: "address";
        name: "liquidator";
        type: "address";
    }];
    name: "LoanSentToLiquidator";
    type: "event";
}, {
    anonymous: false;
    inputs: readonly [{
        indexed: false;
        internalType: "uint256";
        name: "_minimum";
        type: "uint256";
    }];
    name: "MinAprImprovementUpdated";
    type: "event";
}, {
    anonymous: false;
    inputs: readonly [{
        indexed: false;
        internalType: "uint256";
        name: "newMinBid";
        type: "uint256";
    }];
    name: "MinBidLiquidationUpdated";
    type: "event";
}, {
    anonymous: false;
    inputs: readonly [{
        indexed: false;
        internalType: "uint256";
        name: "minLockPeriod";
        type: "uint256";
    }];
    name: "MinLockPeriodUpdated";
    type: "event";
}, {
    anonymous: false;
    inputs: readonly [{
        indexed: false;
        internalType: "address";
        name: "lender";
        type: "address";
    }, {
        indexed: false;
        internalType: "uint256";
        name: "offerId";
        type: "uint256";
    }];
    name: "OfferCancelled";
    type: "event";
}, {
    anonymous: false;
    inputs: readonly [{
        indexed: true;
        internalType: "address";
        name: "user";
        type: "address";
    }, {
        indexed: true;
        internalType: "address";
        name: "newOwner";
        type: "address";
    }];
    name: "OwnershipTransferred";
    type: "event";
}, {
    anonymous: false;
    inputs: readonly [{
        components: readonly [{
            internalType: "address";
            name: "recipient";
            type: "address";
        }, {
            internalType: "uint256";
            name: "fraction";
            type: "uint256";
        }];
        indexed: false;
        internalType: "struct WithProtocolFee.ProtocolFee";
        name: "fee";
        type: "tuple";
    }];
    name: "ProtocolFeePendingUpdate";
    type: "event";
}, {
    anonymous: false;
    inputs: readonly [{
        components: readonly [{
            internalType: "address";
            name: "recipient";
            type: "address";
        }, {
            internalType: "uint256";
            name: "fraction";
            type: "uint256";
        }];
        indexed: false;
        internalType: "struct WithProtocolFee.ProtocolFee";
        name: "fee";
        type: "tuple";
    }];
    name: "ProtocolFeeUpdated";
    type: "event";
}, {
    anonymous: false;
    inputs: readonly [{
        indexed: false;
        internalType: "address";
        name: "lender";
        type: "address";
    }, {
        indexed: false;
        internalType: "uint256";
        name: "renegotiationId";
        type: "uint256";
    }];
    name: "RenegotiationOfferCancelled";
    type: "event";
}, {
    anonymous: false;
    inputs: readonly [{
        indexed: false;
        internalType: "address";
        name: "delegate";
        type: "address";
    }, {
        indexed: false;
        internalType: "address";
        name: "collection";
        type: "address";
    }, {
        indexed: false;
        internalType: "uint256";
        name: "tokenId";
        type: "uint256";
    }, {
        indexed: false;
        internalType: "bytes32";
        name: "_rights";
        type: "bytes32";
    }];
    name: "RevokeDelegate";
    type: "event";
}, {
    anonymous: false;
    inputs: readonly [{
        indexed: false;
        internalType: "address";
        name: "newOwner";
        type: "address";
    }];
    name: "TransferOwnerRequested";
    type: "event";
}, {
    anonymous: false;
    inputs: readonly [{
        indexed: false;
        internalType: "address";
        name: "contractAdded";
        type: "address";
    }];
    name: "WhitelistedCallbackContractAdded";
    type: "event";
}, {
    anonymous: false;
    inputs: readonly [{
        indexed: false;
        internalType: "address";
        name: "contractRemoved";
        type: "address";
    }];
    name: "WhitelistedCallbackContractRemoved";
    type: "event";
}, {
    inputs: readonly [];
    name: "AddressZeroError";
    type: "error";
}, {
    inputs: readonly [{
        internalType: "address";
        name: "_lender";
        type: "address";
    }, {
        internalType: "uint256";
        name: "_offerId";
        type: "uint256";
    }];
    name: "CancelledOrExecutedOfferError";
    type: "error";
}, {
    inputs: readonly [];
    name: "CollectionNotWhitelistedError";
    type: "error";
}, {
    inputs: readonly [];
    name: "CurrencyNotWhitelistedError";
    type: "error";
}, {
    inputs: readonly [];
    name: "ECDSAInvalidSignature";
    type: "error";
}, {
    inputs: readonly [{
        internalType: "uint256";
        name: "length";
        type: "uint256";
    }];
    name: "ECDSAInvalidSignatureLength";
    type: "error";
}, {
    inputs: readonly [{
        internalType: "bytes32";
        name: "s";
        type: "bytes32";
    }];
    name: "ECDSAInvalidSignatureS";
    type: "error";
}, {
    inputs: readonly [{
        internalType: "uint256";
        name: "_expirationTime";
        type: "uint256";
    }];
    name: "ExpiredOfferError";
    type: "error";
}, {
    inputs: readonly [];
    name: "InvalidAddressesError";
    type: "error";
}, {
    inputs: readonly [{
        internalType: "uint256";
        name: "_amount";
        type: "uint256";
    }, {
        internalType: "uint256";
        name: "_principalAmount";
        type: "uint256";
    }];
    name: "InvalidAmountError";
    type: "error";
}, {
    inputs: readonly [];
    name: "InvalidCallbackError";
    type: "error";
}, {
    inputs: readonly [];
    name: "InvalidCallerError";
    type: "error";
}, {
    inputs: readonly [];
    name: "InvalidCollateralIdError";
    type: "error";
}, {
    inputs: readonly [];
    name: "InvalidDurationError";
    type: "error";
}, {
    inputs: readonly [];
    name: "InvalidInputError";
    type: "error";
}, {
    inputs: readonly [{
        internalType: "uint256";
        name: "_loanId";
        type: "uint256";
    }];
    name: "InvalidLoanError";
    type: "error";
}, {
    inputs: readonly [];
    name: "InvalidMethodError";
    type: "error";
}, {
    inputs: readonly [];
    name: "InvalidParametersError";
    type: "error";
}, {
    inputs: readonly [];
    name: "InvalidRenegotiationOfferError";
    type: "error";
}, {
    inputs: readonly [];
    name: "InvalidSignatureError";
    type: "error";
}, {
    inputs: readonly [];
    name: "InvalidTrancheError";
    type: "error";
}, {
    inputs: readonly [{
        internalType: "address";
        name: "_liquidator";
        type: "address";
    }];
    name: "LiquidatorOnlyError";
    type: "error";
}, {
    inputs: readonly [];
    name: "LoanExpiredError";
    type: "error";
}, {
    inputs: readonly [];
    name: "LoanLockedError";
    type: "error";
}, {
    inputs: readonly [{
        internalType: "uint256";
        name: "_expirationTime";
        type: "uint256";
    }];
    name: "LoanNotDueError";
    type: "error";
}, {
    inputs: readonly [{
        internalType: "address";
        name: "_lender";
        type: "address";
    }, {
        internalType: "uint256";
        name: "_newMinOfferId";
        type: "uint256";
    }, {
        internalType: "uint256";
        name: "_minOfferId";
        type: "uint256";
    }];
    name: "LowOfferIdError";
    type: "error";
}, {
    inputs: readonly [{
        internalType: "address";
        name: "_lender";
        type: "address";
    }, {
        internalType: "uint256";
        name: "_newMinRenegotiationOfferId";
        type: "uint256";
    }, {
        internalType: "uint256";
        name: "_minOfferId";
        type: "uint256";
    }];
    name: "LowRenegotiationOfferIdError";
    type: "error";
}, {
    inputs: readonly [];
    name: "MaxCapacityExceededError";
    type: "error";
}, {
    inputs: readonly [];
    name: "MismatchError";
    type: "error";
}, {
    inputs: readonly [{
        internalType: "uint256";
        name: "i";
        type: "uint256";
    }, {
        internalType: "bytes";
        name: "returndata";
        type: "bytes";
    }];
    name: "MulticallFailed";
    type: "error";
}, {
    inputs: readonly [];
    name: "NFTNotReturnedError";
    type: "error";
}, {
    inputs: readonly [];
    name: "NotStrictlyImprovedError";
    type: "error";
}, {
    inputs: readonly [{
        internalType: "uint256";
        name: "_pendingProtocolFeeSetTime";
        type: "uint256";
    }];
    name: "TooEarlyError";
    type: "error";
}, {
    inputs: readonly [];
    name: "TooManyTranchesError";
    type: "error";
}, {
    inputs: readonly [];
    name: "TooSoonError";
    type: "error";
}, {
    inputs: readonly [{
        internalType: "uint256";
        name: "minTimestamp";
        type: "uint256";
    }];
    name: "TrancheCannotBeRefinancedError";
    type: "error";
}, {
    inputs: readonly [];
    name: "ZeroInterestError";
    type: "error";
}] = ...