Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

V3.8.5 #18003

Merged
merged 13 commits into from
Dec 5, 2024
Merged

V3.8.5 #18003

merged 13 commits into from
Dec 5, 2024

Conversation

minggo
Copy link
Contributor

@minggo minggo commented Dec 5, 2024

Re: #

Changelog


Continuous Integration

This pull request:

  • needs automatic test cases check.

    Manual trigger with @cocos-robot run test cases afterward.

  • does not change any runtime related code or build configuration

    If any reviewer thinks the CI checks are needed, please uncheck this option, then close and reopen the issue.


Compatibility Check

This pull request:

  • changes public API, and have ensured backward compatibility with deprecated features.
  • affects platform compatibility, e.g. system version, browser version, platform sdk version, platform toolchain, language version, hardware compatibility etc.
  • affects file structure of the build package or build configuration which requires user project upgrade.
  • introduces breaking changes, please list all changes, affected features and the scope of violation.

Copy link

github-actions bot commented Dec 5, 2024

👍 Package size ⤵ -220 bytes, old: 5441031, new: 5440811

Interface Check Report

! WARNING this pull request has changed these public interfaces:

@@ -35339,9 +35339,11 @@
          * @see https://developer.android.com/ndk/reference/group/thermal#group___thermal_1ga1055f6c8d5910a1904162bea75807314
          */
         export const adpf: {
             /**
-             * @en Provides an estimate of how much thermal headroom the device currently has before hitting severe throttling. The value range is a non-negative float, where 0.0 represents a fixed distance from overheating, 1.0 indicates the device will be severely throttled, and values greater than 1.0 may imply even heavier throttling.
+             * @en Provides an estimate of how much thermal headroom the device currently has before hitting severe throttling.
+             *     The value range is a non-negative float, where 0.0 represents a fixed distance from overheating, 1.0 indicates
+             *     the device will be severely throttled, and values greater than 1.0 may imply even heavier throttling.
              * @zh 提供设备在达到严重节流之前当前有多少热余量的估计值。值的范围是非负浮点数,其中0.0表示距离过热的固定距离,1.0表示设备将被严重限制,而大于1.0的值可能表示更重的限制。
              * @see https://developer.android.com/ndk/reference/group/thermal#group___thermal_1ga1055f6c8d5910a1904162bea75807314
              */
             readonly thermalHeadroom: number;
@@ -58460,8 +58462,503 @@
      */
     export class UIReorderComponent {
         constructor();
     }
+    export namespace google {
+        /**
+         * @en Google Play Billing event type
+         * @zh Google Play Billing事件类型
+         */
+        export enum BillingEventType {
+            /**
+             * @en
+             * Called to notify that setup is complete.
+             *
+             * @zh
+             * 当安装已经完成时触发。
+             */
+            BILLING_SETUP_FINISHED = "billing_setup_finished",
+            /**
+             * @en
+             * Called to notify that the connection to the billing service was lost.
+             *
+             * @zh
+             * 当Billing服务连接断开时触发。
+             */
+            BILLING_SERVICE_DISCONNECTED = "billing_service_disconnected",
+            /**
+             * @en
+             * Listen to this event to get notifications of purchase updates.
+             *
+             * @zh
+             * 监听这个事件可以获取购买更新。
+             */
+            PURCHASES_UPDATED = "purchases_updated",
+            /**
+             * @en
+             * Called to notify that query product details operation has finished.
+             *
+             * @zh
+             * 查询产品详细信息操作完成时触发。
+             */
+            PRODUCT_DETAILS_RESPONSE = "product_details_response",
+            /**
+             * @en
+             * Called to notify that the query purchases operation has finished.
+             *
+             * @zh
+             * 查询购买操作完成时触发。
+             */
+            QUERY_PURCHASES_RESPONSE = "query_purchases_response",
+            /**
+             * @en
+             * Called to notify that a consume operation has finished.
+             *
+             * @zh
+             * 消费操作完成时触发。
+             */
+            CONSUME_RESPONSE = "consume_response",
+            /**
+             * @en
+             * Called to notify that an acknowledge purchase operation has finished.
+             *
+             * @zh
+             * 确认购买操作完成时触发。
+             */
+            ACKNOWLEDGE_PURCHASES_RESPONSE = "acknowledge_purchases_response",
+            /**
+             * @en
+             * Called to notify when the get billing config flow has finished.
+             *
+             * @zh
+             * 获取Billing配置流程完成时触发。
+             */
+            BILLING_CONFIG_RESPONSE = "billing_config_response",
+            /**
+             * @en
+             * Called to receive the results from createAlternativeBillingOnlyReportingDetailsAsync when it is finished.
+             *
+             * @zh
+             * 当调用createAlternativeBillingOnlyReportingDetailsAsync接口完成时触发,可以接收调用结果。
+             */
+            ALTERNATIVE_BILLING_ONLY_TOKEN_RESPONSE = "alternative_billing_only_token_response",
+            /**
+             * @en
+             * Called to receive the results from createExternalOfferReportingDetailsAsync when it is finished.
+             *
+             * @zh
+             * 当调用createExternalOfferReportingDetailsAsync接口完成时触发,可以接收调用结果。
+             */
+            EXTERNAL_OFFER_REPORTING_DETAILS_RESPONSE = "external_offer_reporting_details_response",
+            /**
+             * @en
+             * Called to receive the results from BillingClient#isAlternativeBillingOnlyAvailableAsync when it is finished.
+             *
+             * @zh
+             * 当调用BillingClient#isAlternativeBillingOnlyAvailableAsync接口完成时触发,可以接收调用结果。
+             */
+            ALTERNATIVE_BILLING_ONLY_AVAILABILITY_RESPONSE = "alternative_billing_only_availability_response",
+            /**
+             * @en
+             * Called to receive the results from BillingClient#isExternalOfferAvailableAsync when it is finished.
+             *
+             * @zh
+             * 当调用BillingClient#isExternalOfferAvailableAsync接口完成时触发,可以接收调用结果。
+             */
+            EXTERNAL_OFFER_AVAILABILITY_RESPONSE = "external_offer_availability_response",
+            /**
+             * @en
+             * Called to notify that the alternative billing only dialog flow is finished.
+             *
+             * @zh
+             * 当仅替代Billing对话流程已完成时触发。
+             */
+            ALTERNATIVE_BILLING_ONLY_INFORMATION_DIALOG_RESPONSE = "alternative_billing_only_information_dialog_response",
+            /**
+             * @en
+             * Called to notify that the external offer information dialog flow is finished.
+             *
+             * @zh
+             * 当外部报价信息对话流程已完成时触发。
+             */
+            EXTERNAL_OFFER_INFORMATION_DIALOG_RESPONSE = "external_offer_information_dialog_response",
+            /**
+             * @en
+             * Called to notify when the in-app messaging flow has finished.
+             *
+             * @zh
+             * 当应用内消息流程完成时触发。
+             */
+            IN_APP_MESSAGE_RESPONSE = "in_app_message_response"
+        }
+        /**
+         * @en
+         * Supported Product types.
+         *
+         * @zh
+         * 支持的产品类型。
+         */
+        export enum ProductType {
+            /**
+             * @en
+             * A Product type for Android apps in-app products.
+             *
+             * @zh
+             * Android 应用内产品的产品类型。
+             */
+            INAPP = "inapp",
+            /**
+             * @en
+             * A Product type for Android apps subscriptions.
+             *
+             * @zh
+             * Android 应用程序订阅的产品类型。
+             */
+            SUBS = "subs"
+        }
+        /**
+         * @en
+         * Possible response codes.
+         *
+         * @zh
+         * 可能的响应代码。
+         */
+        export enum BillingResponseCode {
+            /**
+             * @en
+             * This field is deprecated.
+             * See SERVICE_UNAVAILABLE which will be used instead of this code.
+             *
+             * @zh
+             * 这个字段已经废弃。
+             * 看看SERVICE_UNAVAILABLE将使用哪一个来代替此代码。
+             */
+            SERVICE_TIMEOUT = "Bad expression <-3>",
+            /**
+             * @en
+             * The requested feature is not supported by the Play Store on the current device.
+             *
+             * @zh
+             * 当前设备上的 Play Store 不支持所请求的功能。
+             */
+            FEATURE_NOT_SUPPORTED = "Bad expression <-2>",
+            /**
+             * @en
+             * The app is not connected to the Play Store service via the Google Play Billing Library.
+             *
+             * @zh
+             * 该应用未通过 Google Play Billing库连接到 Play Store 服务。
+             */
+            SERVICE_DISCONNECTED = "Bad expression <-1>",
+            /**
+             * @en
+             * Success.
+             *
+             * @zh
+             * 成功。
+             */
+            OK = 0,
+            /**
+             * @en
+             * Transaction was canceled by the user.
+             *
+             * @zh
+             * 交易已被用户取消。
+             */
+            USER_CANCELED = 1,
+            /**
+             * @en
+             * The service is currently unavailable.
+             *
+             * @zh
+             * 当前设备上的 Play Store 不支持所请求的功能。
+             */
+            SERVICE_UNAVAILABLE = 2,
+            /**
+             * @en
+             * A user billing error occurred during processing.
+             *
+             * @zh
+             * 处理过程中出现用户billing错误。
+             */
+            BILLING_UNAVAILABLE = 3,
+            /**
+             * @en
+             * The requested product is not available for purchase.
+             *
+             * @zh
+             * 所请求的产品无法购买。
+             */
+            ITEM_UNAVAILABLE = 4,
+            /**
+             * @en
+             * Error resulting from incorrect usage of the API.
+             *
+             * @zh
+             * 由于错误使用 API 而导致的错误。
+             */
+            DEVELOPER_ERROR = 5,
+            /**
+             * @en
+             * Fatal error during the API action.
+             *
+             * @zh
+             * API 操作期间发生致命错误。
+             */
+            ERROR = 6,
+            /**
+             * @en
+             * The purchase failed because the item is already owned.
+             *
+             * @zh
+             * 购买失败,因为该物品已被拥有。
+             */
+            ITEM_ALREADY_OWNED = 7,
+            /**
+             * @en
+             * Requested action on the item failed since it is not owned by the user.
+             *
+             * @zh
+             * 由于该项目不属于用户,因此对该项目请求的操作失败。
+             */
+            ITEM_NOT_OWNED = 8,
+            /**
+             * @en
+             * A network error occurred during the operation.
+             *
+             * @zh
+             * 操作期间发生网络错误。
+             */
+            NETWORK_ERROR = 12
+        }
+        /**
+         * @en
+         * Recurrence mode of the pricing phase.
+         *
+         * @zh
+         * 定价阶段的复现模式。
+         */
+        export enum RecurrenceMode {
+            /**
+             * @en
+             * The billing plan payment recurs for infinite billing periods unless cancelled.
+             *
+             * @zh
+             * 除非取消,否则billing计划付款将无限期地重复。
+             */
+            INFINITE_RECURRING = 1,
+            /**
+             * @en
+             * The billing plan payment recurs for a fixed number of billing period set in billingCycleCount.
+             *
+             * @zh
+             * Billing计划付款将在 billingCycleCount 中设置的固定计费周期内重复发生。
+             */
+            FINITE_RECURRING = 2,
+            /**
+             * @en
+             * The billing plan payment is a one time charge that does not repeat.
+             *
+             * @zh
+             * Billing计划付款是一次性费用,不会重复。
+             */
+            NON_RECURRING = 3
+        }
+        /**
+         * @en
+         * Connection state of billing client.
+         *
+         * @zh
+         * Billing client的连接状态
+         */
+        export enum ConnectionState {
+            /**
+             * @en
+             * This client was not yet connected to billing service or was already closed.
+             *
+             * @zh
+             * 此客户端尚未连接到Billing服务或已关闭。
+             */
+            DISCONNECTED = 0,
+            /**
+             * @en
+             * This client is currently in process of connecting to billing service.
+             *
+             * @zh
+             * 此客户端目前正在连接到Billing服务。
+             */
+            CONNECTING = 1,
+            /**
+             * @en
+             * This client is currently connected to billing service.
+             *
+             * @zh
+             * 此客户端当前已连接到Billing服务。
+             */
+            CONNECTED = 2,
+            /**
+             * @en
+             * This client was already closed and shouldn't be used again.
+             *
+             * @zh
+             * 该客户端已关闭,不应再次使用。
+             */
+            CLOSED = 3
+        }
+        /**
+         * @en
+         * Features/capabilities supported by isFeatureSupported.
+         *
+         * @zh
+         * 支持的特性/能力isFeatureSupported。
+         */
+        export enum FeatureType {
+            /**
+             * @en
+             * Alternative billing only.
+             *
+             * @zh
+             * 仅限替代Billing。
+             */
+            ALTERNATIVE_BILLING_ONLY = "jjj",
+            /**
+             * @en
+             * Get billing config.
+             *
+             * @zh
+             * 获取计费配置。
+             */
+            BILLING_CONFIG = "ggg",
+            /**
+             * @en
+             * Play billing library support for external offer.
+             *
+             * @zh
+             * Play billing库支持外部报价。
+             */
+            EXTERNAL_OFFER = "kkk",
+            /**
+             * @en
+             * Show in-app messages.
+             *
+             * @zh
+             * 显示应用内消息。
+             */
+            IN_APP_MESSAGING = "bbb",
+            /**
+             * @en
+             * Launch a price change confirmation flow.
+             *
+             * @zh
+             * 启动价格变动确认流程。
+             */
+            PRICE_CHANGE_CONFIRMATION = "priceChangeConfirmation",
+            /**
+             * @en
+             * Play billing library support for querying and purchasing.
+             *
+             * @zh
+             * Play Billing库支持查询、购买。
+             */
+            PRODUCT_DETAILS = "fff",
+            /**
+             * @en
+             * Purchase/query for subscriptions.
+             *
+             * @zh
+             * 购买/查询订阅。
+             */
+            SUBSCRIPTIONS = "subscriptions",
+            /**
+             * @en
+             * Subscriptions update/replace.
+             *
+             * @zh
+             * 订阅更新/替换。
+             */
+            UBSCRIPTIONS_UPDATE = "subscriptionsUpdate"
+        }
+        /**
+         * @en
+         * Possible purchase states.
+         *
+         * @zh
+         * 可能的购买状态。
+         */
+        export enum PurchaseState {
+            /**
+             * @en
+             * Purchase is pending and not yet completed to be processed by your app.
+             *
+             * @zh
+             * 购买处于待处理状态且尚未完成,无法由您的应用程序处理。
+             */
+            PENDING = 2,
+            /**
+             * @en
+             * Purchase is completed..
+             *
+             * @zh
+             * 购买完成。
+             */
+            PURCHASED = 1,
+            /**
+             * @en
+             * Purchase with unknown state.
+             *
+             * @zh
+             * 未知状态
+             */
+            UNSPECIFIED_STATE = 0
+        }
+        /**
+         * @en
+         * Possible response codes.
+         *
+         * @zh
+         * InAppMessage可能的影响代码。
+         */
+        export enum InAppMessageResponseCode {
+            /**
+             * @en
+             * The flow has finished and there is no action needed from developers.
+             *
+             * @zh
+             * 流程已完成,开发人员无需采取任何行动。
+             */
+            NO_ACTION_NEEDED = 0,
+            /**
+             * @en
+             * The subscription status changed.
+             *
+             * @zh
+             * 订阅状态已改变。
+             */
+            SUBSCRIPTION_STATUS_UPDATED = 1
+        }
+        export type BillingResult = __private.__types_jsb__jsb.BillingResult;
+        export type OneTimePurchaseOfferDetails = __private.__types_jsb__jsb.OneTimePurchaseOfferDetails;
+        export type InstallmentPlanDetails = __private.__types_jsb__jsb.InstallmentPlanDetails;
+        export type PricingPhase = __private.__types_jsb__jsb.PricingPhase;
+        export type SubscriptionOfferDetails = __private.__types_jsb__jsb.SubscriptionOfferDetails;
+        export type ProductDetails = __private.__types_jsb__jsb.ProductDetails;
+        export type AccountIdentifiers = __private.__types_jsb__jsb.AccountIdentifiers;
+        export type PendingPurchaseUpdate = __private.__types_jsb__jsb.PendingPurchaseUpdate;
+        export type Purchase = __private.__types_jsb__jsb.Purchase;
+        export type BillingConfig = __private.__types_jsb__jsb.BillingConfig;
+        export type AlternativeBillingOnlyReportingDetails = __private.__types_jsb__jsb.AlternativeBillingOnlyReportingDetails;
+        export type ExternalOfferReportingDetails = __private.__types_jsb__jsb.ExternalOfferReportingDetails;
+        export type InAppMessageResult = __private.__types_jsb__jsb.InAppMessageResult;
+        /**
+         * @en
+         * Interface for Google Play blling module.
+         *
+         * @zh
+         * Google Play blling模块的接口。
+         *
+         */
+        export const billing: __private._vendor_google_billing_billing__Billing;
+    }
     /**
      * @en
      * The video clip asset.
      * @zh
@@ -66659,9 +67156,9 @@
              * Indicates the value to clear {@link GPURenderPassDepthStencilAttachment#view}'s stencil component
              * to prior to executing the render pass. Ignored if {@link GPURenderPassDepthStencilAttachment#stencilLoadOp}
              * is not {@link GPULoadOp#"clear"}.
              * The value will be converted to the type of the stencil aspect of `view` by taking the same
-             * number of LSBs as the number of bits in the stencil aspect of one texel block of `view`.
+             * number of LSBs as the number of bits in the stencil aspect of one texel block|texel of `view`.
              */
             stencilClearValue?: __types_webGPU__GPUStencilValue;
             /**
              * Indicates the load operation to perform on {@link GPURenderPassDepthStencilAttachment#view}'s
@@ -66838,18 +67335,25 @@
             module: GPUShaderModule;
             /**
              * The name of the function in {@link GPUProgrammableStage#module} that this stage will use to
              * perform its work.
+             * NOTE: Since the {@link GPUProgrammableStage#entryPoint} dictionary member is
+             * not required, methods which consume a {@link GPUProgrammableStage} must use the
+             * "[$get the entry point$]" algorithm to determine which entry point
+             * it refers to.
              */
             entryPoint?: string;
             /**
              * Specifies the values of pipeline-overridable constants in the shader module
              * {@link GPUProgrammableStage#module}.
              * Each such pipeline-overridable constant is uniquely identified by a single
-             * pipeline-overridable constant identifier string (representing the numeric ID of the
-             * constant, if one is specified, and otherwise the constant's identifier name).
-             * WGSL names (identifiers) in source maps follow the rules defined in WGSL identifier comparison.
-             * The key of each key-value pair must equal the identifier string of one such constant.
+             * pipeline-overridable constant identifier string, representing the pipeline
+             * constant ID of the constant if its declaration specifies one, and otherwise the
+             * constant's identifier name.
+             * The key of each key-value pair must equal the
+             * pipeline-overridable constant identifier string|identifier string
+             * of one such constant, with the comparison performed
+             * according to the rules for WGSL identifier comparison.
              * When the pipeline is executed, that constant will have the specified value.
              * Values are specified as <dfn typedef for="">GPUPipelineConstantValue</dfn>, which is a {@link double}.
              * They are converted [$to WGSL type$] of the pipeline-overridable constant (`bool`/`i32`/`u32`/`f32`/`f16`).
              * If conversion fails, a validation error is generated.
@@ -66941,9 +67445,9 @@
              */
             layout: GPUPipelineLayout | __types_webGPU__GPUAutoLayoutMode;
         }
         export type __types_webGPU__GPUVertexStepMode = "vertex" | "instance";
-        export type __types_webGPU__GPUVertexFormat = "uint8x2" | "uint8x4" | "sint8x2" | "sint8x4" | "unorm8x2" | "unorm8x4" | "snorm8x2" | "snorm8x4" | "uint16x2" | "uint16x4" | "sint16x2" | "sint16x4" | "unorm16x2" | "unorm16x4" | "snorm16x2" | "snorm16x4" | "float16x2" | "float16x4" | "float32" | "float32x2" | "float32x3" | "float32x4" | "uint32" | "uint32x2" | "uint32x3" | "uint32x4" | "sint32" | "sint32x2" | "sint32x3" | "sint32x4" | "unorm10-10-10-2";
+        export type __types_webGPU__GPUVertexFormat = "uint8" | "uint8x2" | "uint8x4" | "sint8" | "sint8x2" | "sint8x4" | "unorm8" | "unorm8x2" | "unorm8x4" | "snorm8" | "snorm8x2" | "snorm8x4" | "uint16" | "uint16x2" | "uint16x4" | "sint16" | "sint16x2" | "sint16x4" | "unorm16" | "unorm16x2" | "unorm16x4" | "snorm16" | "snorm16x2" | "snorm16x4" | "float16" | "float16x2" | "float16x4" | "float32" | "float32x2" | "float32x3" | "float32x4" | "uint32" | "uint32x2" | "uint32x3" | "uint32x4" | "sint32" | "sint32x2" | "sint32x3" | "sint32x4" | "unorm10-10-10-2" | "unorm8x4-bgra";
         export type __types_webGPU__GPUIndex32 = number;
         export interface __types_webGPU__GPUVertexAttribute {
             /**
              * The {@link GPUVertexFormat} of the attribute.
@@ -66975,10 +67479,10 @@
             attributes: Iterable<__types_webGPU__GPUVertexAttribute>;
         }
         export interface __types_webGPU__GPUVertexState extends __types_webGPU__GPUProgrammableStage {
             /**
-             * A list of {@link GPUVertexBufferLayout}s defining the layout of the vertex attribute data in the
-             * vertex buffers used by this pipeline.
+             * A list of {@link GPUVertexBufferLayout}s, each defining the layout of vertex attribute data in a
+             * vertex buffer used by this pipeline.
              */
             buffers?: Iterable<__types_webGPU__GPUVertexBufferLayout | null>;
         }
         export type __types_webGPU__GPUFrontFace = "ccw" | "cw";
@@ -67020,10 +67524,10 @@
         export type __types_webGPU__GPUCompareFunction = "never" | "less" | "equal" | "less-equal" | "greater" | "not-equal" | "greater-equal" | "always";
         export type __types_webGPU__GPUStencilOperation = "keep" | "zero" | "replace" | "invert" | "increment-clamp" | "decrement-clamp" | "increment-wrap" | "decrement-wrap";
         export interface __types_webGPU__GPUStencilFaceState {
             /**
-             * The {@link GPUCompareFunction} used when testing fragments against
-             * {@link GPURenderPassDescriptor#depthStencilAttachment} stencil values.
+             * The {@link GPUCompareFunction} used when testing the {@link RenderState#[[stencilReference]]} value
+             * against the fragment's {@link GPURenderPassDescriptor#depthStencilAttachment} stencil values.
              */
             compare?: __types_webGPU__GPUCompareFunction;
             /**
              * The {@link GPUStencilOperation} performed if the fragment stencil comparison test described by
@@ -67076,17 +67580,17 @@
              * bits are written to when performing stencil operations.
              */
             stencilWriteMask?: __types_webGPU__GPUStencilValue;
             /**
-             * Constant depth bias added to each fragment. See [$biased fragment depth$] for details.
+             * Constant depth bias added to each triangle fragment. See [$biased fragment depth$] for details.
              */
             depthBias?: __types_webGPU__GPUDepthBias;
             /**
-             * Depth bias that scales with the fragment’s slope. See [$biased fragment depth$] for details.
+             * Depth bias that scales with the triangle fragment’s slope. See [$biased fragment depth$] for details.
              */
             depthBiasSlopeScale?: number;
             /**
-             * The maximum depth bias of a fragment. See [$biased fragment depth$] for details.
+             * The maximum depth bias of a triangle fragment. See [$biased fragment depth$] for details.
              */
             depthBiasClamp?: number;
         }
         export type __types_webGPU__GPUSampleMask = number;
@@ -67108,9 +67612,9 @@
              */
             alphaToCoverageEnabled?: boolean;
         }
         export type __types_webGPU__GPUBlendOperation = "add" | "subtract" | "reverse-subtract" | "min" | "max";
-        export type __types_webGPU__GPUBlendFactor = "zero" | "one" | "src" | "one-minus-src" | "src-alpha" | "one-minus-src-alpha" | "dst" | "one-minus-dst" | "dst-alpha" | "one-minus-dst-alpha" | "src-alpha-saturated" | "constant" | "one-minus-constant";
+        export type __types_webGPU__GPUBlendFactor = "zero" | "one" | "src" | "one-minus-src" | "src-alpha" | "one-minus-src-alpha" | "dst" | "one-minus-dst" | "dst-alpha" | "one-minus-dst-alpha" | "src-alpha-saturated" | "constant" | "one-minus-constant" | "src1" | "one-minus-src1" | "src1-alpha" | "one-minus-src1-alpha";
         export interface __types_webGPU__GPUBlendComponent {
             /**
              * Defines the {@link GPUBlendOperation} used to calculate the values written to the target
              * attachment components.
@@ -67299,9 +67803,12 @@
             sampler: _cocos_gfx_webgpu_webgpu_sampler__WebGPUSampler;
             setLayout: gfx.DescriptorSetLayout;
             descSet: gfx.DescriptorSet;
         }
-        export type __types_webGPU__PredefinedGPUColorSpace = "display-p3" | "srgb";
+        export type __types_webGPU__GPUCanvasToneMappingMode = "standard" | "extended";
+        export interface __types_webGPU__GPUCanvasToneMapping {
+            mode?: __types_webGPU__GPUCanvasToneMappingMode;
+        }
         export type __types_webGPU__GPUCanvasAlphaMode = "opaque" | "premultiplied";
         export interface __types_webGPU__GPUCanvasConfiguration {
             /**
              * The {@link GPUDevice} that textures returned by {@link GPUCanvasContext#getCurrentTexture} will be
@@ -67329,10 +67836,15 @@
             /**
              * The color space that values written into textures returned by
              * {@link GPUCanvasContext#getCurrentTexture} should be displayed with.
              */
-            colorSpace?: __types_webGPU__PredefinedGPUColorSpace;
+            colorSpace?: PredefinedColorSpace;
             /**
+             * The tone mapping determines how the content of textures returned by
+             * {@link GPUCanvasContext#getCurrentTexture} are to be displayed.
+             */
+            toneMapping?: __types_webGPU__GPUCanvasToneMapping;
+            /**
              * Determines the effect that alpha values will have on the content of textures returned by
              * {@link GPUCanvasContext#getCurrentTexture} when read, displayed, or used as an image source.
              */
             alphaMode?: __types_webGPU__GPUCanvasAlphaMode;
@@ -70525,46 +71037,11 @@
              */
             protected originalTarget: unknown;
             protected target: unknown;
             /**
-             * The `workerTarget` was added from Cocos Creator 3.8.4 and it's used for nest `Tween` functionality.
-             * It stores the target of sub-tween and its value may be different from `target`.
-             *
-             * Example 1:
-             * ```ts
-             *   tween(node).to(1, { scale: new Vec3(2, 2, 2) }).start();
-             *   // target and original target are both `node`, workerTarget is `null`.
-             * ```
-             *
-             * Example 2:
-             * ```ts
-             *   tween(node).parallel(                                        // ----- Root tween
-             *       tween(node).to(1, { scale: new Vec3(2, 2, 2) }),         // ----- Sub tween 1
-             *       tween(node).to(1, { position: new Vec3(10, 10, 10) })    // ----- Sub Tween 2
-             *   ).start();
-             *   // Note that only root tween is started here. We call tweens in `parallel`/`sequence` sub tweens.
-             *   // The `target` and `originalTarget` of all internal actions are `node`.
-             *   // Actions in root tween: workerTarget = null
-             *   // Actions in sub tween 1: workerTarget = node
-             *   // Actions in sub tween 2: workerTarget = node
-             * ```
-             *
-             * Example 3:
-             * ```ts
-             *   tween(node).parallel(                                        // ----- Root tween
-             *       tween(node).to(1, { scale: new Vec3(2, 2, 2) }),         // ----- Sub tween 1
-             *       tween(node.getComponent(UITransform)).to(1, {            // ----- Sub Tween 2
-             *           contentSize: new Size(10, 10)
-             *       })
-             *   ).start();
-             *   // Note that only root tween is started here. We call tweens in `parallel`/`sequence` sub tweens.
-             *   // The `target` and `originalTarget` of all internal actions are `node`.
-             *   // Actions in root tween: workerTarget = null
-             *   // Actions in sub tween 1: workerTarget = node
-             *   // Actions in sub tween 2: workerTarget = node's UITransform component
-             * ```
+             * The tween who owns this action.
              */
-            workerTarget: unknown;
+            _owner: Tween | null;
             protected tag: _cocos_tween_actions_action__ActionEnum;
             /**
              * @en The identifier that to mark an internal action.
              */
@@ -70613,8 +71090,46 @@
              */
             getOriginalTarget<T>(): T | null;
             setOriginalTarget<T>(originalTarget: T): void;
             /**
+             * Return the worker target of the current action applys on.
+             *
+             * Example 1:
+             * ```ts
+             *   tween(node).to(1, { scale: new Vec3(2, 2, 2) }).start();
+             *   // target and original target are both `node`, _getWorkerTarget returns `null`.
+             * ```
+             *
+             * Example 2:
+             * ```ts
+             *   tween(node).parallel(                                        // ----- Root tween
+             *       tween(node).to(1, { scale: new Vec3(2, 2, 2) }),         // ----- Sub tween 1
+             *       tween(node).to(1, { position: new Vec3(10, 10, 10) })    // ----- Sub Tween 2
+             *   ).start();
+             *   // Note that only root tween is started here. We call tweens in `parallel`/`sequence` sub tweens.
+             *   // The `target` and `originalTarget` of all internal actions are `node`.
+             *   // Actions in root tween: _getWorkerTarget returns `node`,
+             *   // Actions in sub tween 1: _getWorkerTarget returns `node`,
+             *   // Actions in sub tween 2: _getWorkerTarget returns `node`.
+             * ```
+             *
+             * Example 3:
+             * ```ts
+             *   tween(node).parallel(                                        // ----- Root tween
+             *       tween(node).to(1, { scale: new Vec3(2, 2, 2) }),         // ----- Sub tween 1
+             *       tween(node.getComponent(UITransform)).to(1, {            // ----- Sub Tween 2
+             *           contentSize: new Size(10, 10)
+             *       })
+             *   ).start();
+             *   // Note that only root tween is started here. We call tweens in `parallel`/`sequence` sub tweens.
+             *   // The `target` and `originalTarget` of all internal actions are `node`.
+             *   // Actions in root tween: workerTarget = `node`,
+             *   // Actions in sub tween 1: workerTarget = `node`,
+             *   // Actions in sub tween 2: workerTarget = `node`'s UITransform component.
+             * ```
+             */
+            protected _getWorkerTarget<T>(): T | null;
+            /**
              * @en get tag number.
              * @zh 获取用于识别动作的标签。
              * @method getTag
              * @return {Number}
@@ -71738,8 +72253,1374 @@
              * @deprecated since v3.5.0, this is an engine private interface that will be removed in the future.
              */
             _buildResult(containerW: number, containerH: number, contentW: number, contentH: number, scaleX: number, scaleY: number): _cocos_ui_view__AdaptResult;
         }
+        export type __types_jsb_jsb__AccelerationXYZ = number;
+        export type __types_jsb_jsb__AccelerationIncludingGravityXYZ = number;
+        export type __types_jsb_jsb__RotationRateAlpha = number;
+        export type __types_jsb_jsb__RotationRateBeta = number;
+        export type __types_jsb_jsb__RotationRateGamma = number;
+        export interface __types_jsb_jsb__MouseEvent {
+            x: number;
+            y: number;
+            xDelta: number | undefined;
+            yDelta: number | undefined;
+            button: number;
+            windowId: number;
+        }
+        export interface __types_jsb_jsb__MouseWheelEvent extends __types_jsb_jsb__MouseEvent {
+            wheelDeltaX: number;
+            wheelDeltaY: number;
+        }
+        export type __types_jsb_jsb__MouseEventCallback = (mouseEvent: __types_jsb_jsb__MouseEvent) => void;
+        export type __types_jsb_jsb__MouseWheelEventCallback = (mouseEvent: __types_jsb_jsb__MouseWheelEvent) => void;
+        export type __types_jsb_jsb__TouchEventCallback = (touchList: TouchList, windowId?: number) => void;
+        export interface __types_jsb_jsb__AxisInfo {
+            code: number;
+            value: number;
+        }
+        export interface __types_jsb_jsb__ButtonInfo {
+            code: number;
+            isPressed: boolean;
+        }
+        export interface __types_jsb_jsb__TouchInfo {
+            code: number;
+            value: number;
+        }
+        export interface __types_jsb_jsb__ControllerInfo {
+            id: number;
+            axisInfoList: __types_jsb_jsb__AxisInfo[];
+            buttonInfoList: __types_jsb_jsb__ButtonInfo[];
+            touchInfoList: __types_jsb_jsb__TouchInfo[];
+        }
+        export interface __types_jsb_jsb__PoseInfo {
+            code: number;
+            x: number;
+            y: number;
+            z: number;
+            quaternionX: number;
+            quaternionY: number;
+            quaternionZ: number;
+            quaternionW: number;
+        }
+        export interface __types_jsb_jsb__KeyboardEvent {
+            altKey: boolean;
+            ctrlKey: boolean;
+            metaKey: boolean;
+            shiftKey: boolean;
+            repeat: boolean;
+            keyCode: number;
+            windowId: number;
+            code: string;
+        }
+        export type __types_jsb_jsb__KeyboardEventCallback = (keyboardEvent: __types_jsb_jsb__KeyboardEvent) => void;
+        export interface __types_jsb_jsb__WindowEvent {
+            windowId: number;
+            width: number;
+            height: number;
+        }
+        export enum __types_jsb_jsb__AudioFormat {
+            UNKNOWN,
+            SIGNED_8,
+            UNSIGNED_8,
+            SIGNED_16,
+            UNSIGNED_16,
+            SIGNED_32,
+            UNSIGNED_32,
+            FLOAT_32,
+            FLOAT_64
+        }
+        export class __types_jsb_jsb__NativePOD {
+            underlyingData(): ArrayBuffer;
+            _data(): __types_globals__TypedArray;
+            __data: __types_globals__TypedArray;
+        }
+        export class __types_jsb_jsb__Manifest {
+            constructor(manifestUrl: string);
+            constructor(content: string, manifestRoot: string);
+            parseFile(manifestUrl: string): void;
+            parseJSONString(content: string, manifestRoot: string): void;
+            getManifestRoot(): string;
+            getManifestFileUrl(): string;
+            getVersionFileUrl(): string;
+            getSearchPaths(): [
+                string
+            ];
+            getVersion(): string;
+            getPackageUrl(): boolean;
+            setUpdating(isUpdating: boolean): void;
+            isUpdating(): boolean;
+            isVersionLoaded(): boolean;
+            isLoaded(): boolean;
+        }
+        export interface __types_jsb_jsb__ManifestAsset {
+            md5: string;
+            path: string;
+            compressed: boolean;
+            size: number;
+            downloadState: number;
+        }
+        export class __types_jsb_jsb__EventAssetsManager {
+            // EventCode
+            static ERROR_NO_LOCAL_MANIFEST: number;
+            static ERROR_DOWNLOAD_MANIFEST: number;
+            static ERROR_PARSE_MANIFEST: number;
+            static NEW_VERSION_FOUND: number;
+            static ALREADY_UP_TO_DATE: number;
+            static UPDATE_PROGRESSION: number;
+            static ASSET_UPDATED: number;
+            static ERROR_UPDATING: number;
+            static UPDATE_FINISHED: number;
+            static UPDATE_FAILED: number;
+            static ERROR_DECOMPRESS: number;
+            constructor(eventName: string, manager: __types_jsb_jsb__AssetsManager, eventCode: number, assetId?: string, message?: string, curleCode?: number, curlmCode?: number);
+            getAssetsManagerEx(): __types_jsb_jsb__AssetsManager;
+            isResuming(): boolean;
+            getDownloadedFiles(): number;
+            getDownloadedBytes(): number;
+            getTotalFiles(): number;
+            getTotalBytes(): number;
+            getPercent(): number;
+            getPercentByFile(): number;
+            getEventCode(): number;
+            getMessage(): string;
+            getAssetId(): string;
+            getCURLECode(): number;
+            getCURLMCode(): number;
+        }
+        export namespace __types_jsb_jsb__AssetsManager {
+            export enum State {
+                UNINITED,
+                UNCHECKED,
+                PREDOWNLOAD_VERSION,
+                DOWNLOADING_VERSION,
+                VERSION_LOADED,
+                PREDOWNLOAD_MANIFEST,
+                DOWNLOADING_MANIFEST,
+                MANIFEST_LOADED,
+                NEED_UPDATE,
+                READY_TO_UPDATE,
+                UPDATING,
+                UNZIPPING,
+                UP_TO_DATE,
+                FAIL_TO_UPDATE
+            }
+        }
+        export class __types_jsb_jsb__AssetsManager {
+            constructor(manifestUrl: string, storagePath: string, versionCompareHandle?: (versionA: string, versionB: string) => number);
+            static create(manifestUrl: string, storagePath: string): __types_jsb_jsb__AssetsManager;
+            getState(): __types_jsb_jsb__AssetsManager.State;
+            getStoragePath(): string;
+            getMaxConcurrentTask(): number;
+            // setMaxConcurrentTask (max: number): void;  // actually not supported
+            checkUpdate(): void;
+            prepareUpdate(): void;
+            update(): void;
+            isResuming(): boolean;
+            getDownloadedFiles(): number;
+            getDownloadedBytes(): number;
+            getTotalFiles(): number;
+            getTotalBytes(): number;
+            downloadFailedAssets(): void;
+            getLocalManifest(): __types_jsb_jsb__Manifest;
+            loadLocalManifest(manifestUrl: string): boolean;
+            loadLocalManifest(localManifest: __types_jsb_jsb__Manifest, storagePath: string): boolean;
+            getRemoteManifest(): __types_jsb_jsb__Manifest;
+            loadRemoteManifest(remoteManifest: __types_jsb_jsb__Manifest): boolean;
+            /**
+             * Setup your own version compare handler, versionA and B is versions in string.
+             * if the return value greater than 0, versionA is greater than B,
+             * if the return value equals 0, versionA equals to B,
+             * if the return value smaller than 0, versionA is smaller than B.
+             */
+            setVersionCompareHandle(versionCompareHandle?: (versionA: string, versionB: string) => number): void;
+            /**
+             * Setup the verification callback, Return true if the verification passed, otherwise return false
+             */
+            setVerifyCallback(verifyCallback: (path: string, asset: __types_jsb_jsb__ManifestAsset) => boolean): void;
+            setEventCallback(eventCallback: (event: __types_jsb_jsb__EventAssetsManager) => void): void;
+        }
+        /**
+         * @en Represents a pricing phase, describing how a user pays at a point in time.
+         * @zh 表示定价阶段,描述用户在某个时间点如何付款。
+         */
+        export interface __types_jsb_jsb__PricingPhase {
+            /**
+             * @en Number of cycles for which the billing period is applied.
+             * @zh 计费周期适用的周期数。
+             */
+            readonly billingCycleCount: number;
+            /**
+             * @en The price for the payment cycle in micro-units, where 1,000,000 micro-units equal one unit of the currency.
+             * @zh 微单位付款周期的价格,其中 1,000,000 个微单位等于 1 个货币单位。
+             */
+            readonly priceAmountMicros: number;
+            /**
+             * @en RecurrenceMode for the pricing phase.
+             * @zh 定价阶段的RecurrenceMode。
+             */
+            readonly recurrenceMode: number;
+            /**
+             * @en Billing period for which the given price applies, specified in ISO 8601 format.
+             * @zh 给定价格适用的计费期,以 ISO 8601 格式指定。
+             */
+            readonly billingPeriod: string;
+            /**
+             * @en Formatted price for the payment cycle, including its currency sign.
+             * @zh 付款周期的格式化价格,包括其货币符号。
+             */
+            readonly formattedPrice: string;
+            /**
+             * @en Returns ISO 4217 currency code for price.
+             * @zh 返回价格的 ISO 4217 货币代码。
+             */
+            readonly priceCurrencyCode: string;
+        }
+        /**
+         * @en Represents additional details of an installment subscription plan.
+         * @zh 表示分期付款订阅计划的附加详细信息。
+         */
+        export interface __types_jsb_jsb__InstallmentPlanDetails {
+            /**
+             * @en Committed payments count after a user signs up for this subscription plan.
+             * @zh 用户注册此订阅计划后承诺的付款数量。
+             */
+            readonly installmentPlanCommitmentPaymentsCount: number;
+            /**
+             * @en Subsequent committed payments count after this subscription plan renews.
+             * @zh 此订阅计划续订后的后续承诺付款数量。
+             */
+            readonly subsequentInstallmentPlanCommitmentPaymentsCount: number;
+        }
+        /**
+         * @en Represents the offer details to buy an one-time purchase product.
+         * @zh 代表一次性购买产品的报价详情。
+         */
+        export interface __types_jsb_jsb__OneTimePurchaseOfferDetails {
+            /**
+             * @en The price for the payment in micro-units, where 1,000,000 micro-units equal one unit of the currency.
+             * @zh 以微单位返回支付价格,其中 1,000,000 个微单位等于 1 个货币单位。
+             */
+            readonly priceAmountMicros: number;
+            /**
+             * @en Formatted price for the payment, including its currency sign.
+             * @zh 支付的格式化价格,包括其货币单位。
+             */
+            readonly formattedPrice: string;
+            /**
+             * @en ISO 4217 currency code for price.
+             * @zh 价格的 ISO 4217 货币代码。
+             */
+            readonly priceCurrencyCode: string;
+        }
+        /**
+         * @en Represents the available purchase plans to buy a subscription product.
+         * @zh 代表一次性购买产品的报价详情。
+         */
+        export interface __types_jsb_jsb__SubscriptionOfferDetails {
+            /**
+             * @en The base plan id associated with the subscription product.
+             * @zh 与订阅产品相关的基本计划 ID。
+             */
+            readonly basePlanId: string;
+            /**
+             * @en The offer id associated with the subscription product.
+             * @zh 与订阅产品相关的优惠 ID。
+             */
+            readonly offerId: string;
+            /**
+             * @en The offer tags associated with this Subscription Offer.
+             * @zh 与此订阅优惠相关的优惠标签。
+             */
+            readonly offerTags: string[];
+            /**
+             * @en The offer token required to pass in launchBillingFlow to purchase the subscription product with these pricing phases.
+             * @zh 在 launchBillingFlow 中传递以使用这些定价阶段购买订阅产品所需的优惠令牌。
+             */
+            readonly offerToken: string;
+            /**
+             * @en The pricing phases for the subscription product.
+             * @zh 订阅产品的定价区间。
+             */
+            readonly pricingPhaseList: __types_jsb_jsb__PricingPhase[];
+            /**
+             * @en The additional details of an installment plan.
+             * @zh 分期付款计划的附加详细信息。
+             */
+            readonly installmentPlanDetails: __types_jsb_jsb__InstallmentPlanDetails;
+        }
+        /**
+         * @en Account identifiers that were specified when the purchase was made.
+         * @zh 购买时指定的帐户标识符。
+         */
+        export interface __types_jsb_jsb__AccountIdentifiers {
+            /**
+             * @en The obfuscated account id specified in setObfuscatedAccountId.
+             * @zh 在setObfuscatedAccountId中设置的混淆账户id
+             */
+            readonly obfuscatedAccountId: string;
+            /**
+             * @en The obfuscated profile id specified in setObfuscatedProfileId.
+             * @zh 在setObfuscatedProfileId中设置的混淆profile id
+             */
+            readonly obfuscatedProfileId: string;
+        }
+        /**
+         * @en Represents a pending change/update to the existing purchase.
+         * @zh 表示对现有购买的待定更改/更新。
+         */
+        export interface __types_jsb_jsb__PendingPurchaseUpdate {
+            /**
+             * @en A token that uniquely identifies this pending transaction.
+             * @zh 唯一标识此待处理交易的令牌。
+             */
+            readonly purchaseToken: string;
+            /**
+             * @en The product ids.
+             * @zh 产品 ID。
+             */
+            readonly products: string[];
+        }
+        /**
+         * @en Represents the details of a one time or subscription product.
+         * @zh 代表一次性或订阅产品的详细信息。
+         */
+        export interface __types_jsb_jsb__ProductDetails {
+            /**
+             * @en Hash code
+             * @zh hash值
+             */
+            readonly hashCode: number;
+            /**
+             * @en The description of the product.
+             * @zh 产品的描述。
+             */
+            readonly description: string;
+            /**
+             * @en The name of the product being sold.
+             * @zh 所售产品的名称。
+             */
+            readonly name: string;
+            /**
+             * @en The product's Id.
+             * @zh 产品的 ID。
+             */
+            readonly productId: string;
+            /**
+             * @en The ProductType of the product.
+             * @zh ProductType产品的。
+             */
+            readonly productType: string;
+            /**
+             * @en The title of the product being sold.
+             * @zh 所售产品的标题。
+             */
+            readonly title: string;
+            /**
+             * @en To string
+             * @zh 转换成字符串
+             */
+            readonly toStr: string;
+            /**
+             * @en The offer details of an one-time purchase product.
+             * @zh 代表一次性购买产品的报价详情。
+             */
+            readonly oneTimePurchaseOfferDetails: __types_jsb_jsb__OneTimePurchaseOfferDetails;
+            /**
+             * @en A list containing all available offers to purchase a subscription product.
+             * @zh 返回包含购买订阅产品的所有可用优惠的列表。
+             */
+            readonly subscriptionOfferDetails: __types_jsb_jsb__SubscriptionOfferDetails[];
+        }
+        /**
+         * @en Represents an in-app billing purchase.
+         * @zh 代表应用内billing购买。
+         */
+        export interface __types_jsb_jsb__Purchase {
+            /**
+             * @en One of PurchaseState indicating the state of the purchase.
+             * @zh PurchaseState表示购买状态的其中一个值。
+             */
+            readonly purchaseState: number;
+            /**
+             * @en The time the product was purchased, in milliseconds since the epoch (Jan 1, 1970).
+             * @zh 产品购买的时间,以纪元(1970 年 1 月 1 日)以来的毫秒数表示。
+             */
+            readonly purchaseTime: number;
+            /**
+             * @en Indicates whether the purchase has been acknowledged.
+             * @zh 表示是否已确认购买。
+             */
+            readonly isAcknowledged: number;
+            /**
+             * @en Indicates whether the subscription renews automatically.
+             * @zh 指示订阅是否自动续订。
+             */
+            readonly isAutoRenewing: number;
+            /**
+             * @en Hash code
+             * @zh hash值
+             */
+            readonly hashCode: number;
+            /**
+             * @en The quantity of the purchased product.
+             * @zh 购买产品的数量。
+             */
+            readonly quantity: number;
+            /**
+             * @en The payload specified when the purchase was acknowledged or consumed.
+             * @zh 确认或消费购买时指定的有效负载。
+             */
+            readonly developerPayload: string;
+            /**
+             * @en Returns a unique order identifier for the transaction.
+             * @zh 交易的唯一订单标识符。
+             */
+            readonly orderId: string;
+            /**
+             * @en Returns a String in JSON format that contains details about the purchase order.
+             * @zh 包含有关采购订单详细信息的 JSON 格式的字符串。
+             */
+            readonly originalJson: string;
+            /**
+             * @en The application package from which the purchase originated.
+             * @zh 购买来源的应用程序包。
+             */
+            readonly packageName: string;
+            /**
+             * @en A token that uniquely identifies a purchase for a given item and user pair.
+             * @zh 唯一标识给定商品和用户对的购买的令牌。
+             */
+            readonly purchaseToken: string;
+            /**
+             * @en String containing the signature of the purchase data that was signed with the private key of the developer.
+             * @zh 包含使用开发者私钥签名的购买数据签名的字符串。
+             */
+            readonly signature: string;
+            /**
+             * @en To string
+             * @zh 转换成字符串
+             */
+            readonly toStr: string;
+            /**
+             * @en Returns account identifiers that were provided when the purchase was made.
+             * @zh 返回购买时提供的帐户标识符。
+             */
+            readonly accountIdentifiers: __types_jsb_jsb__AccountIdentifiers;
+            /**
+             * @en The PendingPurchaseUpdate for an uncommitted transaction.
+             * @zh 返回PendingPurchaseUpdate未提交的事务。
+             */
+            readonly pendingPurchaseUpdate: __types_jsb_jsb__PendingPurchaseUpdate;
+            /**
+             * @en the product Ids.
+             * @zh 产品 ID。
+             */
+            readonly products: string[];
+        }
+        /**
+         * @en Params containing the response code and the debug message from In-app Billing API response.
+         * @zh 包含应用内结算 API 响应代码和调试信息的参数
+         */
+        export interface __types_jsb_jsb__BillingResult {
+            /**
+             * @en Debug message returned in In-app Billing API calls.
+             * @zh 应用内结算 API 调用中返回的调试消息。
+             */
+            readonly debugMessage: string;
+            /**
+             * @en Code returned in In-app Billing API calls.
+             * @zh 应用内结算 API 调用中返回的响应代码。
+             */
+            readonly responseCode: string;
+            readonly toStr: string;
+        }
+        export interface __types_jsb_jsb__BillingConfig {
+            /**
+             * @en The customer's country code.
+             * @zh 客户的国家代码。
+             */
+            readonly countryCode: string;
+        }
+        /**
+         * @en The details used to report transactions made via alternative billing without user choice to use Google Play Billing.
+         * @zh 用于报告用户未选择使用 Google Play Billing方式而通过替代Billing方式进行的交易的详细信息。
+         */
+        export interface __types_jsb_jsb__AlternativeBillingOnlyReportingDetails {
+            /**
+             * @en An external transaction token that can be used to report a transaction made via alternative billing
+             *     without user choice to use Google Play billing.
+             * @zh 返回一个外部交易令牌,该令牌可用于报告通过替代付款方式进行的交易,而无需用户选择使用 Google Play 付款方式。
+             */
+            readonly externalTransactionToken: string;
+        }
+        /**
+         * @en The details used to report transactions made via external offer.
+         * @zh 用于报告通过外部报价进行的交易的详细信息。
+         */
+        export interface __types_jsb_jsb__ExternalOfferReportingDetails {
+            /**
+             * @en An external transaction token that can be used to report a transaction made via external offer.
+             * @zh 可用于报告通过外部报价进行的交易的外部交易令牌。
+             */
+            readonly externalTransactionToken: string;
+        }
+        /**
+         * @en Results related to in-app messaging.
+         * @zh 与应用程序内消息相关的结果。
+         */
+        export interface __types_jsb_jsb__InAppMessageResult {
+            /**
+             * @en Response code for the in-app messaging API call.
+             * @zh 应用内消息传递 API 调用的响应代码。
+             */
+            readonly responseCode: number;
+            /**
+             * @en Token that identifies the purchase to be acknowledged, if any.
+             * @zh 返回标识需要确认的购买的令牌。
+             */
+            readonly purchaseToken: string;
+        }
+        export namespace __types_jsb__jsb {
+            let window: any;
+            type AccelerationXYZ = number;
+            type AccelerationIncludingGravityXYZ = number;
+            type RotationRateAlpha = number;
+            type RotationRateBeta = number;
+            type RotationRateGamma = number;
+            type DeviceMotionValue = [
+                __types_jsb_jsb__AccelerationXYZ,
+                __types_jsb_jsb__AccelerationXYZ,
+                __types_jsb_jsb__AccelerationXYZ,
+                __types_jsb_jsb__AccelerationIncludingGravityXYZ,
+                __types_jsb_jsb__AccelerationIncludingGravityXYZ,
+                __types_jsb_jsb__AccelerationIncludingGravityXYZ,
+                __types_jsb_jsb__RotationRateAlpha,
+                __types_jsb_jsb__RotationRateBeta,
+                __types_jsb_jsb__RotationRateGamma
+            ];
+            export interface NativeSafeAreaEdge {
+                /**
+                 * top
+                 */
+                x: number;
+                /**
+                 * left
+                 */
+                y: number;
+                /**
+                 * bottom
+                 */
+                z: number;
+                /**
+                 * right
+                 */
+                w: number;
+            }
+            export interface MouseEvent {
+                x: number;
+                y: number;
+                xDelta: number | undefined;
+                yDelta: number | undefined;
+                button: number;
+                windowId: number;
+            }
+            type MouseEventCallback = (mouseEvent: __types_jsb_jsb__MouseEvent) => void;
+            export interface MouseWheelEvent extends __types_jsb_jsb__MouseEvent {
+                wheelDeltaX: number;
+                wheelDeltaY: number;
+            }
+            type MouseWheelEventCallback = (mouseEvent: __types_jsb_jsb__MouseWheelEvent) => void;
+            export let onMouseDown: __types_jsb_jsb__MouseEventCallback | undefined;
+            export let onMouseMove: __types_jsb_jsb__MouseEventCallback | undefined;
+            export let onMouseUp: __types_jsb_jsb__MouseEventCallback | undefined;
+            export let onMouseWheel: __types_jsb_jsb__MouseWheelEventCallback | undefined;
+            type TouchEventCallback = (touchList: TouchList, windowId?: number) => void;
+            export let onTouchStart: __types_jsb_jsb__TouchEventCallback | undefined;
+            export let onTouchMove: __types_jsb_jsb__TouchEventCallback | undefined;
+            export let onTouchEnd: __types_jsb_jsb__TouchEventCallback | undefined;
+            export let onTouchCancel: __types_jsb_jsb__TouchEventCallback | undefined;
+            export interface ControllerInfo {
+                id: number;
+                axisInfoList: __types_jsb_jsb__AxisInfo[];
+                buttonInfoList: __types_jsb_jsb__ButtonInfo[];
+                touchInfoList: __types_jsb_jsb__TouchInfo[];
+            }
+            export interface AxisInfo {
+                code: number;
+                value: number;
+            }
+            export interface ButtonInfo {
+                code: number;
+                isPressed: boolean;
+            }
+            export interface TouchInfo {
+                code: number;
+                value: number;
+            }
+            export let onControllerInput: (infoList: __types_jsb_jsb__ControllerInfo[]) => void | undefined;
+            export let onHandleInput: (infoList: __types_jsb_jsb__ControllerInfo[]) => void | undefined;
+            export let onControllerChange: (controllerIds: number[]) => void | undefined;
+            export interface PoseInfo {
+                code: number;
+                x: number;
+                y: number;
+                z: number;
+                quaternionX: number;
+                quaternionY: number;
+                quaternionZ: number;
+                quaternionW: number;
+            }
+            export let onHandlePoseInput: (infoList: __types_jsb_jsb__PoseInfo[]) => void | undefined;
+            export let onHMDPoseInput: (infoList: __types_jsb_jsb__PoseInfo[]) => void | undefined;
+            export let onHandheldPoseInput: (infoList: __types_jsb_jsb__PoseInfo[]) => void | undefined;
+            export interface KeyboardEvent {
+                altKey: boolean;
+                ctrlKey: boolean;
+                metaKey: boolean;
+                shiftKey: boolean;
+                repeat: boolean;
+                keyCode: number;
+                windowId: number;
+                code: string;
+            }
+            type KeyboardEventCallback = (keyboardEvent: __types_jsb_jsb__KeyboardEvent) => void;
+            export let onKeyDown: __types_jsb_jsb__KeyboardEventCallback | undefined;
+            export let onKeyUp: __types_jsb_jsb__KeyboardEventCallback | undefined;
+            export interface WindowEvent {
+                windowId: number;
+                width: number;
+                height: number;
+            }
+            /**
+             * @en WindowEvent.width and WindowEvent.height have both been multiplied by DPR
+             * @zh WindowEvent.width 和 WindowEvent.height 都已乘以 DPR
+             */
+            export let onResize: (event: __types_jsb_jsb__WindowEvent) => void | undefined;
+            export let onOrientationChanged: (event: {
+                orientation: number;
+            }) => void | undefined;
+            export let onResume: () => void | undefined;
+            export let onPause: () => void | undefined;
+            export let onClose: () => void | undefined;
+            export let onWindowLeave: () => void | undefined;
+            export let onWindowEnter: () => void | undefined;
+            export function openURL(url: string): void;
+            export function garbageCollect(): void;
+            enum AudioFormat {
+                UNKNOWN,
+                SIGNED_8,
+                UNSIGNED_8,
+                SIGNED_16,
+                UNSIGNED_16,
+                SIGNED_32,
+                UNSIGNED_32,
+                FLOAT_32,
+                FLOAT_64
+            }
+            interface PCMHeader {
+                totalFrames: number;
+                sampleRate: number;
+                bytesPerFrame: number;
+                audioFormat: __types_jsb_jsb__AudioFormat;
+                channelCount: number;
+            }
+            class NativePOD {
+                underlyingData(): ArrayBuffer;
+                _data(): __types_globals__TypedArray;
+                __data: __types_globals__TypedArray;
+            }
+            export class Color extends __types_jsb_jsb__NativePOD {
+            }
+            export class Quat extends __types_jsb_jsb__NativePOD {
+            }
+            export class Vec2 extends __types_jsb_jsb__NativePOD {
+            }
+            export class Vec3 extends __types_jsb_jsb__NativePOD {
+            }
+            export class Vec4 extends __types_jsb_jsb__NativePOD {
+            }
+            export class Mat3 extends __types_jsb_jsb__NativePOD {
+            }
+            export class Mat4 extends __types_jsb_jsb__NativePOD {
+            }
+            export interface ManifestAsset {
+                md5: string;
+                path: string;
+                compressed: boolean;
+                size: number;
+                downloadState: number;
+            }
+            export class Manifest {
+                constructor(manifestUrl: string);
+                constructor(content: string, manifestRoot: string);
+                parseFile(manifestUrl: string): void;
+                parseJSONString(content: string, manifestRoot: string): void;
+                getManifestRoot(): string;
+                getManifestFileUrl(): string;
+                getVersionFileUrl(): string;
+                getSearchPaths(): [
+                    string
+                ];
+                getVersion(): string;
+                getPackageUrl(): boolean;
+                setUpdating(isUpdating: boolean): void;
+                isUpdating(): boolean;
+                isVersionLoaded(): boolean;
+                isLoaded(): boolean;
+            }
+            export class EventAssetsManager {
+                // EventCode
+                static ERROR_NO_LOCAL_MANIFEST: number;
+                static ERROR_DOWNLOAD_MANIFEST: number;
+                static ERROR_PARSE_MANIFEST: number;
+                static NEW_VERSION_FOUND: number;
+                static ALREADY_UP_TO_DATE: number;
+                static UPDATE_PROGRESSION: number;
+                static ASSET_UPDATED: number;
+                static ERROR_UPDATING: number;
+                static UPDATE_FINISHED: number;
+                static UPDATE_FAILED: number;
+                static ERROR_DECOMPRESS: number;
+                constructor(eventName: string, manager: __types_jsb_jsb__AssetsManager, eventCode: number, assetId?: string, message?: string, curleCode?: number, curlmCode?: number);
+                getAssetsManagerEx(): __types_jsb_jsb__AssetsManager;
+                isResuming(): boolean;
+                getDownloadedFiles(): number;
+                getDownloadedBytes(): number;
+                getTotalFiles(): number;
+                getTotalBytes(): number;
+                getPercent(): number;
+                getPercentByFile(): number;
+                getEventCode(): number;
+                getMessage(): string;
+                getAssetId(): string;
+                getCURLECode(): number;
+                getCURLMCode(): number;
+            }
+            export class AssetsManager {
+                constructor(manifestUrl: string, storagePath: string, versionCompareHandle?: (versionA: string, versionB: string) => number);
+                static create(manifestUrl: string, storagePath: string): __types_jsb_jsb__AssetsManager;
+                getState(): __types_jsb_jsb__AssetsManager.State;
+                getStoragePath(): string;
+                getMaxConcurrentTask(): number;
+                // setMaxConcurrentTask (max: number): void;  // actually not supported
+                checkUpdate(): void;
+                prepareUpdate(): void;
+                update(): void;
+                isResuming(): boolean;
+                getDownloadedFiles(): number;
+                getDownloadedBytes(): number;
+                getTotalFiles(): number;
+                getTotalBytes(): number;
+                downloadFailedAssets(): void;
+                getLocalManifest(): __types_jsb_jsb__Manifest;
+                loadLocalManifest(manifestUrl: string): boolean;
+                loadLocalManifest(localManifest: __types_jsb_jsb__Manifest, storagePath: string): boolean;
+                getRemoteManifest(): __types_jsb_jsb__Manifest;
+                loadRemoteManifest(remoteManifest: __types_jsb_jsb__Manifest): boolean;
+                /**
+                 * Setup your own version compare handler, versionA and B is versio...*[Comment body truncated]*

@minggo minggo merged commit 52af114 into v3.8.6 Dec 5, 2024
28 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants