package com.tencent.qian.webview.model

/**
 * 业务回调入口。
 *
 * **两类回调**:
 * - [onSignResult] —— `qianapp://` 协议回调,即电子签 H5 把签署/填写/拒签等结果回吐给 App
 * - [onEvent] —— 容器层非协议事件,见 [SdkEvent]
 *
 * **派发线程**:SDK 内部保证 callback **始终在主线程触发**,客户无需 `runOnUiThread`。
 *
 * **跨端一致性**:与 iOS `onSignResult: (SignResult) -> Void` / `onEvent: (SdkEvent) -> Void`
 * 闭包入参 1:1 对齐。
 */
public interface SignCallback {

    /**
     * 命中 `qianapp://` 协议时回调。
     *
     * 此回调发生后,SDK 会**自动 cancel** 该次 WebView 导航(不再加载 qianapp://);
     * 业务方在此决定下一步动作(关闭页面 / 跳转其他流程 / 留在原地 等)。
     */
    public fun onSignResult(result: SignResult)

    /**
     * 容器层观测事件。**默认空实现**,客户按需重写。
     */
    public fun onEvent(event: SdkEvent) {
        // no-op by default
    }
}
