How about using ethers.js interfaces? Ethers.js is much leaner, smaller with good separation of concerns.