Interacting with contract using thereum api


I understood that with the new versions of Metamask, one should use window.ethereum API rather than legacy window.web3 API;
however, I would like to load a contract then send a transaction. in web3 api, we use web3.eth.Contract to load the contract.
I couldn’t find anything in window.ethereum API to do something similar.

how can I achieve that using ethereum API?