/**
 * 状态栏文字/图标颜色样式。
 */
export type StatusBarStyle = 'DARK_CONTENT' | 'LIGHT_CONTENT';
/**
 * Tencent Qian H5 容器配置。
 *
 * 全部字段带默认值，最少 0 配置即可跑通签署流程。
 *
 * 典型用法:
 * ```ts
 * const config = new TencentQianWebViewConfig();
 * config.topBarTitle = '电子签署';
 * config.externalSchemes = ['weixin', 'alipays', 'mqqapi'];
 * config.userAgentExtra = 'myapp/3.2.1';
 * TencentQianWebView.open(context, signUrl, config, callback);
 * ```
 */
export class TencentQianWebViewConfig {
    // ────────── User-Agent ──────────
    /**
     * 是否注入 SDK UA 标识(`qianwv/<version>`)。
     *
     * H5 端通过此标识启用 SDK 专属兼容逻辑并关联日志;关闭后兼容功能将降级。默认开启。
     */
    public injectUserAgent: boolean = true;
    /**
     * 客户附加的 UA 段,会拼接在 `qianwv/x.x.x` 之后。
     *
     * 例: `'myapp/3.2.1'` → 最终 UA = `<system-ua> qianwv/1.0.0 myapp/3.2.1`
     */
    public userAgentExtra: string = '';
    // ────────── 内容混合(http / https)──────────
    /**
     * 是否允许在 https 页面加载 http 子资源。默认 `false`（对应 ArkWeb `MixedMode.None`）；
     * 客户传 `false` 切换为 `MixedMode.None`。
     */
    public allowMixedContent: boolean = false;
    // ────────── 顶栏(仅页面形态生效) ──────────
    /** 容器模式下是否显示顶栏。组件形态忽略此字段。 */
    public showTopBar: boolean = true;
    /** 顶栏标题文案。空字符串则使用默认 "电子签署"。 */
    public topBarTitle: string = '';
    /** 顶栏背景色(ARGB 数值)。`null` 走默认白色。 */
    public topBarBackgroundColor: number | null = null;
    /** 顶栏文字色(ARGB 数值,含返回箭头与标题)。`null` 走默认黑色。 */
    public topBarTextColor: number | null = null;
    /** 顶栏右上角是否显示「关闭」按钮。 */
    public showCloseButton: boolean = true;
    // ────────── 状态栏 ──────────
    /**
     * 状态栏样式。
     * - `'DARK_CONTENT'` 状态栏文字黑色(浅色背景,默认)
     * - `'LIGHT_CONTENT'` 状态栏文字白色(深色背景)
     */
    public statusBarStyle: StatusBarStyle = 'DARK_CONTENT';
    // ────────── 关闭确认(仅页面形态生效) ──────────
    /**
     * 用户在容器模式下点关闭/返回时,是否弹「确认离开?」二次确认。
     *
     * 推荐场景:防止用户在签署中误退出。
     */
    public confirmBeforeClose: boolean = false;
    /** 二次确认 dialog 的标题文案,空走默认。 */
    public confirmCloseTitle: string = '';
    /** 二次确认 dialog 的正文文案,空走默认。 */
    public confirmCloseMessage: string = '';
    // ────────── Scheme 拦截白名单 ──────────
    /**
     * 允许跳出本 App 的外部 scheme 白名单。
     *
     * **覆盖语义**: 传入即整体覆盖,默认 = `['weixin', 'alipays']`。
     * 客户传 `[]` = 禁止所有外部 scheme 跳出。
     */
    public externalSchemes: string[] = ['weixin', 'alipays'];
    // ────────── 自检页 URL ──────────
    /**
     * 自检页地址。`null` 时走 SDK 默认 URL。
     */
    public compatibilityTestUrl: string | null = null;
    // ────────── 下载 Cookie 同步 ──────────
    /**
     * 下载文件时是否从 WebView 同步 Cookie 到下载请求头。
     *
     * - `false`(默认): 不携带 Cookie。CDN 公开链接或带签名 token 的 URL 无需 Cookie 鉴权。
     * - `true`: 注入 Cookie。适用于客户自有业务中需要 Cookie 鉴权才能下载的场景。
     */
    public downloadWithCookies: boolean = false;
}
