This would allow wallet operations like funding transactions with smart contract-based inputs such as LN, or any input the Core wallet doesn't know how to sign for.

https://github.com/bitcoin/bitcoin/pull/17211#issuecomment-933674310
boost::signals2::signal<void (const std::string &title, int nProgress)> ShowProgress;
    
    boost::signals2::signal<void (bool fHaveWatchOnly)> NotifyWatchonlyChanged;
    
    boost::signals2::signal<void ()> NotifyCanGetAddressesChanged;
    /**
     * Wallet status (encrypted, locked) changed.
     * Note: Called without locks held.
     */
    boost::signals2::signal<void (CWallet* wallet)> NotifyStatusChanged;
    
    bool GetBroadcastTransactions() const { return fBroadcastTransactions; }
    
    void SetBroadcastTransactions(bool broadcast) { fBroadcastTransactions = broadcast; }
    
    bool TransactionCanBeAbandoned(const uint256& hashTx) const;
    
    bool AbandonTransaction(const uint256& hashTx);
    
    bool MarkReplaced(const uint256& originalHash, const uint256& newHash);
    
    static std::shared_ptr<CWallet> Create(WalletContext& context, const std::string& name, std::unique_ptr<WalletDatabase> database, uint64_t wallet_creation_flags, bilingual_str& error, std::vector<bilingual_str>& warnings);
    /**
     * Wallet post-init setup
     * Gives the wallet a chance to register repetitive tasks and complete post-init tasks
     */
    void postInitProcess();
    bool BackupWallet(const std::string& strDest) const;
    
    bool IsHDEnabled() const;