import Foundation public struct XWebViewConfig: Sendable { public var url: String public var title: String public var hideToolbar: Bool public var hideStatusBar: Bool public var userAgent: String? public var injectedJavaScript: String? public var onMessage: (@Sendable (String) -> Void)? public init( url: String = "", title: String = "", hideToolbar: Bool = false, hideStatusBar: Bool = false, userAgent: String? = nil, injectedJavaScript: String? = nil, onMessage: (@Sendable (String) -> Void)? = nil ) { self.url = url self.title = title self.hideToolbar = hideToolbar self.hideStatusBar = hideStatusBar self.userAgent = userAgent self.injectedJavaScript = injectedJavaScript self.onMessage = onMessage } } public protocol XWebViewController: AnyObject { func canGoBack() -> Bool func canGoForward() -> Bool func currentUrl() -> String? func goBack() func goForward() func reload() func load(url: String) func postMessageToWeb(js: String) }