cocos-engine icon indicating copy to clipboard operation
cocos-engine copied to clipboard

move cocos/core/scene-graph to cocos/scene-graph

Open minggo opened this issue 3 years ago • 1 comments

Re: https://github.com/cocos/cocos-engine/issues/12647

Changelog

  • move cocos/core/scene-graph to cocos/scene-graph
  • move some files in cocos/core/components to cocos/scene-graph:
    • component.ts
    • component-event-handler.ts
    • component-event-handler-schema.ts
  • move some files in cocos/core/components to cocos/misc:
    • missing-script.ts
    • model-renderer.ts
    • renderer.ts
    • camera-component.ts
  • move cocos/core/components/system.ts to cocos/core/system.ts

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.

minggo avatar Sep 23 '22 07:09 minggo

Interface Check Report

! WARNING this pull request has changed these public interfaces:

@@ -16616,8 +16616,52 @@
          * @param l @en The light to be recycled @zh 要回收的光源
          */
         recycleLight(l: renderer.scene.Light): void;
     }
+    /**
+     * @en Base class for all functional system managed by [[Director]].
+     * @zh 功能系统的基类,由 [[Director]] 管理。
+     */
+    export class System implements ISchedulable {
+        static Priority: {
+            LOW: number;
+            MEDIUM: number;
+            HIGH: number;
+            SCHEDULER: number;
+        };
+        protected _id: string;
+        protected _priority: number;
+        protected _executeInEditMode: boolean;
+        set priority(value: number);
+        get priority(): number;
+        set id(id: string);
+        get id(): string;
+        /**
+         * @en Sorting between different systems.
+         * @zh 不同系统间排序。
+         * @param a System a
+         * @param b System b
+         */
+        static sortByPriority(a: System, b: System): 1 | -1 | 0;
+        /**
+         * @en Init the system, will be invoked by [[Director]] when registered, should be implemented if needed.
+         * @zh 系统初始化函数,会在注册时被 [[Director]] 调用,如果需要的话应该由子类实现
+         */
+        init(): void;
+        /**
+         * @en Update function of the system, it will be invoked between all components update phase and late update phase.
+         * @zh 系统的帧更新函数,它会在所有组件的 update 和 lateUpdate 之间被调用
+         * @param dt Delta time after the last frame
+         */
+        update(dt: number): void;
+        /**
+         * @en Post update function of the system, it will be invoked after all components late update phase and before the rendering process.
+         * @zh 系统的帧后处理函数,它会在所有组件的 lateUpdate 之后以及渲染之前被调用
+         * @param dt Delta time after the last frame
+         */
+        postUpdate(dt: number): void;
+        destroy(): void;
+    }
     export namespace easing {
         export function constant(): number;
         export function linear(k: number): number;
         export function quadIn(k: number): number;
@@ -20001,9 +20045,9 @@
         static instance: Director;
         /**
          * @deprecated since v3.5.0, this is an engine private interface that will be removed in the future.
          */
-        _compScheduler: __private._cocos_core_scene_graph_component_scheduler__ComponentScheduler;
+        _compScheduler: __private._cocos_scene_graph_component_scheduler__ComponentScheduler;
         /**
          * @deprecated since v3.5.0, this is an engine private interface that will be removed in the future.
          */
         _nodeActivator: NodeActivator;
@@ -20235,9 +20279,1573 @@
      * @zh 游戏的导演,用于控制游戏更新循环与场景管理。
      */
     export const director: Director;
     /**
+     * @en
+     * Real curve.
+     *
+     * The real curve is a kind of keyframe curve.
+     * When evaluating a real curve:
+     * - If the input is just the time of a keyframe,
+     *   keyframe value's numeric value is used as result.
+     * - Otherwise, if the input is less than the time of the first keyframe or
+     *   is greater than the time of the last keyframe time, it performs so-called extrapolation.
+     * - Otherwise, the input falls between two keyframes and then it interpolates between the two keyframes.
+     *
+     * Every keyframe may specify an interpolation mode
+     * to indicates how to perform the interpolation
+     * from current keyframe to next keyframe.
+     * Interpolation modes of keyframes may differ from each other.
+     *
+     * Real curve allows three interpolation modes: constant, linear and cubic.
+     * The constant and linear mode is easy.
+     * In case of cubic interpolation,
+     * the interpolation algorithm is effectively equivalent to cubic bezier(or cubic hermite) interpolation.
+     *
+     * Related quantities related to cubic interpolation are:
+     * - Keyframe times and numeric values.
+     * - The tangent and tangent weight of the previous keyframe and next keyframe.
+     *
+     * While performing the cubic bezier interpolation,
+     * The first control point is calculated from right tangent and right tangent weight of previous keyframe,
+     * the second control point is calculated from left tangent and left tangent weight of next keyframe.
+     *
+     * In equivalent bezier representation,
+     * the tangent is the line slope between sample point and control point
+     * and the tangent weight is the distance between sample point and control point.
+     * The tangent weight on either side can be marked as "not specified" through tangent weight mode.
+     * If either side weight is not specified,
+     * the tangent weight is treated at `sqrt(d_t^2 + (d_t * tangent)^2) * (1 / 3)`
+     * where `d_t` is the difference between two keyframes 's time and `tangent` is the tangent of that side.
+     *
+     * Note, in some cases, tangent/tangent weight/tangent weight mode may be "meaningless".
+     * The meaningless means that value can may not be stored(or serialized).
      * @zh
+     * 实数曲线。
+     *
+     * 实数曲线是关键帧曲线的一种。
+     * 在求值实数曲线时:
+     * - 若输入正好就是关键帧上的时间,关键帧上的数值就作为结果。
+     * - 否则,如果输入小于第一个关键帧上的时间或大于最后一个关键帧上的时间,它会进行所谓的外推。
+     * - 否则,输入落于两帧之间,将通过插值两帧得到结果。
+     *
+     * 每个关键帧都可以指定插值模式,
+     * 以表示从当前帧数值变化到下一帧数值所采用的插值算法,
+     * 每个关键帧的插值模式都可以是各不相同的。
+     *
+     * 实数曲线允许三种插值模式:常量、线性和三次方的(也称立方)。
+     * 常量和线性模式都比较简单。
+     * 在三次插值的情况下,插值算法实质上等价于三次贝塞尔(或三次埃尔米特)插值。
+     *
+     * 三次插值的相关量有:
+     * - 关键帧上的时间和数值;
+     * - 前一关键帧和后一关键帧上的切线和切线权重。
+     *
+     * 当两帧之间进行三次贝塞尔曲线插值时,
+     * 会取前一帧的右切线、右切线权重来计算出第一个控制点,
+     * 会取后一帧的左切线、左切线权重来计算出第二个控制点。
+     *
+     * 在等效的贝塞尔表示中,
+     * 切线就是样本点和控制点之间的切线斜率,而切线权重就是样本点和控制点之间的距离。
+     * 任意一端的切线权重都可以通过切线权重模式来标记为“未指定的”。
+     * 若任意一端的切线权重是未指定的,
+     * 此端上的切线权重将被视为 `sqrt(d_t^2 + (d_t * tangent)^2) * (1 / 3)`,其中,
+     * `d_t` 是两帧时间的差,`tangent` 是此端上的切线。
+     *
+     * 注意,切线/切线权重/切线权重模式在某些情况下可能是“无意义的”。
+     * 无意义意味着这些值可能不会被存储或序列化。
+     */
+    export class RealCurve extends __private._cocos_core_curves_keyframe_curve__KeyframeCurve<RealKeyframeValue> {
+        /**
+         * @en
+         * Gets or sets the pre-extrapolation-mode of this curve.
+         * Defaults to `ExtrapolationMode.CLAMP`.
+         * @zh
+         * 获取或设置此曲线的前向外推模式。
+         * 默认为 `ExtrapolationMode.CLAMP`。
+         */
+        preExtrapolation: ExtrapolationMode;
+        /**
+         * @en
+         * Gets or sets the post-extrapolation-mode of this curve.
+         * Defaults to `ExtrapolationMode.CLAMP`.
+         * @zh
+         * 获取或设置此曲线的后向外推模式。
+         * 默认为 `ExtrapolationMode.CLAMP`。
+         */
+        postExtrapolation: ExtrapolationMode;
+        /**
+         * @en
+         * Evaluates this curve at specified time.
+         * @zh
+         * 计算此曲线在指定时间上的值。
+         * @param time Input time.
+         * @returns Result value.
+         */
+        evaluate(time: number): number;
+        /**
+         * @en
+         * Adds a keyframe into this curve.
+         * @zh
+         * 添加一个关键帧到此曲线。
+         * @param time Time of the keyframe.
+         * @param value Value of the keyframe.
+         * @returns The index to the new keyframe.
+         */
+        addKeyFrame(time: number, value: __private._cocos_core_curves_curve__RealKeyframeValueParameters): number;
+        /**
+         * @en
+         * Assigns all keyframes.
+         * @zh
+         * 赋值所有关键帧。
+         * @param keyframes An iterable to keyframes. The keyframes should be sorted by their time.
+         */
+        assignSorted(keyframes: Iterable<[
+            number,
+            __private._cocos_core_curves_curve__RealKeyframeValueParameters
+        ]>): void;
+        /**
+         * Assigns all keyframes.
+         * @param times Times array. Should be sorted.
+         * @param values Values array. Corresponding to each time in `times`.
+         */
+        assignSorted(times: readonly number[], values: __private._cocos_core_curves_curve__RealKeyframeValueParameters[]): void;
+        /**
+         * @en
+         * Returns if this curve is constant.
+         * @zh
+         * 返回此曲线是否是常量曲线。
+         * @param tolerance The tolerance.
+         * @returns Whether it is constant.
+         */
+        isConstant(tolerance: number): boolean;
+        /**
+         * @internal
+         */
+        [serializeTag](output: SerializationOutput, context: SerializationContext): void;
+        /**
+         * @internal
+         */
+        [deserializeTag](input: SerializationInput, context: __private._cocos_core_data_custom_serializable__DeserializationContext): void;
+    }
+    /**
+     * @en
+     * The method used for interpolation method between value of a keyframe and its next keyframe.
+     * @zh
+     * 在某关键帧(前一帧)和其下一帧之间插值时使用的插值方式。
+     */
+    export enum RealInterpolationMode {
+        /**
+         * @en
+         * Perform linear interpolation between previous keyframe value and next keyframe value.
+         * @zh
+         * 在前一帧和后一帧之间执行线性插值。
+         */
+        LINEAR = 0,
+        /**
+         * @en
+         * Always use the value from this keyframe.
+         * @zh
+         * 永远使用前一帧的值。
+         */
+        CONSTANT = 1,
+        /**
+         * @en
+         * Perform cubic(hermite) interpolation between previous keyframe value and next keyframe value.
+         * @zh
+         * 在前一帧和后一帧之间执行立方插值。
+         */
+        CUBIC = 2
+    }
+    /**
+     * @en
+     * Specifies how to extrapolate the value
+     * if input time is underflow(less than the the first frame time) or
+     * overflow(greater than the last frame time) when evaluating an curve.
+     * @zh
+     * 在求值曲线时,指定当输入时间下溢(小于第一帧的时间)或上溢(大于最后一帧的时间)时应该如何推断结果值。
+     */
+    export enum ExtrapolationMode {
+        /**
+         * @en
+         * Compute the result
+         * according to the first two frame's linear trend in the case of underflow and
+         * according to the last two frame's linear trend in the case of overflow.
+         * If there are less than two frames, fallback to `CLAMP`.
+         * @zh
+         * 下溢时,根据前两帧的线性趋势计算结果;上溢时,根据最后两帧的线性趋势计算结果。
+         * 如果曲线帧数小于 2,回退到  `CLAMP`。
+         */
+        LINEAR = 0,
+        /**
+         * @en
+         * Use first frame's value in the case of underflow,
+         * use last frame's value in the case of overflow.
+         * @zh
+         * 下溢时,使用第一帧的值;上溢时,使用最后一帧的值。
+         */
+        CLAMP = 1,
+        /**
+         * @en
+         * Computes the result as if the curve is infinitely and continuously looped.
+         * @zh
+         * 求值时将该曲线视作是无限连续循环的。
+         */
+        LOOP = 2,
+        /**
+         * @en
+         * Computes the result as if the curve is infinitely and continuously looped in a ping-pong manner.
+         * @zh
+         * 求值时将该曲线视作是以“乒乓”的形式无限连续循环的。
+         */
+        PING_PONG = 3
+    }
+    /**
+     * @en
+     * Specifies both side tangent weight mode of a keyframe value.
+     * @zh
+     * 指定关键帧两侧的切线权重模式。
+     */
+    export enum TangentWeightMode {
+        /**
+         * @en
+         * Neither side of the keyframe carries tangent weight information.
+         * @zh
+         * 关键帧的两侧都不携带切线权重信息。
+         */
+        NONE = 0,
+        /**
+         * @en
+         * Only left side of the keyframe carries tangent weight information.
+         * @zh
+         * 仅关键帧的左侧携带切线权重信息。
+         */
+        LEFT = 1,
+        /**
+         * @en
+         * Only right side of the keyframe carries tangent weight information.
+         * @zh
+         * 仅关键帧的右侧携带切线权重信息。
+         */
+        RIGHT = 2,
+        /**
+         * @en
+         * Both sides of the keyframe carries tangent weight information.
+         * @zh
+         * 关键帧的两侧都携带切线权重信息。
+         */
+        BOTH = 3
+    }
+    /**
+     * @en View to a real frame value.
+     * Note, the view may be invalidated due to keyframe change/add/remove.
+     * @zh 实数帧值的视图。
+     * 注意,该视图可能因关键帧的添加、改变、移除而失效。
+     */
+    export class RealKeyframeValue extends __private._cocos_core_data_editor_extendable__EditorExtendable {
+        /**
+         * @en
+         * When perform interpolation, the interpolation method should be taken
+         * when for this keyframe is used as starting keyframe.
+         * @zh
+         * 在执行插值时,当以此关键帧作为起始关键帧时应当使用的插值方式。
+         */
+        get interpolationMode(): RealInterpolationMode;
+        set interpolationMode(value: RealInterpolationMode);
+        /**
+         * @en
+         * Tangent weight mode when perform cubic interpolation
+         * This field is regarded if current interpolation mode is not cubic.
+         * @zh
+         * 当执行三次插值时,此关键帧使用的切线权重模式。
+         * 若当前的插值模式不是三次插值时,该字段无意义。
+         */
+        get tangentWeightMode(): TangentWeightMode;
+        set tangentWeightMode(value: TangentWeightMode);
+        /**
+         * @en
+         * Value of the keyframe.
+         * @zh
+         * 该关键帧的值。
+         */
+        value: number;
+        /**
+         * @en
+         * The tangent of this keyframe
+         * when it's used as starting point during cubic interpolation.
+         * Regarded otherwise.
+         * @zh
+         * 当此关键帧作为三次插值的起始点时,此关键帧的切线。其他情况下该字段无意义。
+         */
+        rightTangent: number;
+        /**
+         * @en
+         * The tangent weight of this keyframe
+         * when it's used as starting point during weighted cubic interpolation.
+         * Regarded otherwise.
+         * @zh
+         * 当此关键帧作为三次插值的起始点时,此关键帧的切线权重。其他情况下该字段无意义。
+         */
+        rightTangentWeight: number;
+        /**
+         * @en
+         * The tangent of this keyframe
+         * when it's used as ending point during cubic interpolation.
+         * Regarded otherwise.
+         * @zh
+         * 当此关键帧作为三次插值的目标点时,此关键帧的切线。其他情况下该字段无意义。
+         */
+        leftTangent: number;
+        /**
+         * @en
+         * The tangent weight of this keyframe
+         * when it's used as ending point during weighted cubic interpolation.
+         * Regarded otherwise.
+         * @zh
+         * 当此关键帧作为三次插值的目标点时,此关键帧的切线权重。其他情况下该字段无意义。
+         */
+        leftTangentWeight: number;
+        /**
+         * @deprecated Reserved for backward compatibility. Will be removed in future.
+         */
+        get easingMethod(): __private._cocos_core_curves_easing_method__EasingMethod;
+        set easingMethod(value: __private._cocos_core_curves_easing_method__EasingMethod);
+    }
+    /**
+     * @en
+     * Quaternion curve.
+     * @zh
+     * 四元数曲线
+     */
+    export class QuatCurve extends __private._cocos_core_curves_keyframe_curve__KeyframeCurve<QuatKeyframeValue> {
+        /**
+         * @en
+         * Gets or sets the pre-extrapolation-mode of this curve.
+         * Defaults to `ExtrapolationMode.CLAMP`.
+         * @zh
+         * 获取或设置此曲线的前向外推模式。
+         * 默认为 `ExtrapolationMode.CLAMP`。
+         */
+        preExtrapolation: ExtrapolationMode;
+        /**
+         * @en
+         * Gets or sets the post-extrapolation-mode of this curve.
+         * Defaults to `ExtrapolationMode.CLAMP`.
+         * @zh
+         * 获取或设置此曲线的后向外推模式。
+         * 默认为 `ExtrapolationMode.CLAMP`。
+         */
+        postExtrapolation: ExtrapolationMode;
+        /**
+         * @en
+         * Evaluates this curve at specified time.
+         * @zh
+         * 计算此曲线在指定时间上的值。
+         * @param time Input time.
+         * @param quat If specified, this value will be filled and returned.
+         * Otherwise a new quaternion object will be filled and returned.
+         * @returns Result value.
+         */
+        evaluate(time: number, quat?: math.Quat): math.Quat;
+        /**
+         * Adds a keyframe into this curve.
+         * @param time Time of the keyframe.
+         * @param value Value of the keyframe.
+         * @returns The index to the new keyframe.
+         */
+        addKeyFrame(time: number, value: __private._cocos_core_curves_quat_curve__QuatKeyframeValueParameters): number;
+        /**
+         * Assigns all keyframes.
+         * @param keyframes An iterable to keyframes. The keyframes should be sorted by their time.
+         */
+        assignSorted(keyframes: Iterable<[
+            number,
+            __private._cocos_core_curves_quat_curve__QuatKeyframeValueParameters
+        ]>): void;
+        /**
+         * Assigns all keyframes.
+         * @param times Times array. Should be sorted.
+         * @param values Values array. Corresponding to each time in `times`.
+         */
+        assignSorted(times: readonly number[], values: __private._cocos_core_curves_quat_curve__QuatKeyframeValueParameters[]): void;
+        /**
+         * @internal
+         */
+        [serializeTag](output: SerializationOutput, context: SerializationContext): void;
+        /**
+         * @internal
+         */
+        [deserializeTag](input: SerializationInput, context: __private._cocos_core_data_custom_serializable__DeserializationContext): void;
+    }
+    /**
+     * @en
+     * The method used for interpolation between values of a quaternion keyframe and its next keyframe.
+     * @zh
+     * 在某四元数关键帧(前一帧)和其下一帧之间插值时使用的插值方式。
+     */
+    export enum QuatInterpolationMode {
+        /**
+         * @en
+         * Perform spherical linear interpolation between previous keyframe value and next keyframe value.
+         * @zh
+         * 在前一帧和后一帧之间执行球面线性插值。
+         */
+        SLERP = 0,
+        /**
+         * @en
+         * Always use the value from this keyframe.
+         * @zh
+         * 永远使用前一帧的值。
+         */
+        CONSTANT = 1
+    }
+    /**
+     * View to a quaternion frame value.
+     * Note, the view may be invalidated due to keyframe change/add/remove.
+     */
+    export class QuatKeyframeValue {
+        /**
+         * @en
+         * When perform interpolation, the interpolation method should be taken
+         * when for this keyframe is used as starting keyframe.
+         * @zh
+         * 在执行插值时,当以此关键帧作为起始关键帧时应当使用的插值方式。
+         */
+        interpolationMode: QuatInterpolationMode;
+        /**
+         * @en
+         * Value of the keyframe.
+         * @zh
+         * 该关键帧的值。
+         */
+        value: math.IQuatLike;
+        /**
+         * @internal Reserved for backward compatibility. Will be removed in future.
+         */
+        easingMethod: __private._cocos_core_curves_easing_method__EasingMethod | [
+            number,
+            number,
+            number,
+            number
+        ];
+        constructor({ value, interpolationMode, easingMethod, }?: Partial<QuatKeyframeValue>);
+    }
+    export class ObjectCurve<T> extends __private._cocos_core_curves_keyframe_curve__KeyframeCurve<ObjectCurveKeyframe<T>> {
+        evaluate(time: number): T;
+    }
+    export type ObjectCurveKeyframe<T> = T;
+    /**
+     * @zh
+     * 配置模块用于获取 settings.json 配置文件中的配置信息,同时你可以覆盖一些配置从而影响引擎的启动和运行,可参考 [game.init] 的参数选项说明。你可以通过 [settings] 访问此模块单例。
+     * @en
+     * The Settings module is used to get the configuration information in the settings.json configuration file,
+     * and you can override some of the configuration to affect the launch and running of the engine, as described in the [game.init] parameter options.
+     * You can access this single instance of the module via [settings].
+     */
+    export class Settings {
+        static Category: typeof __private._cocos_core_settings__Category;
+        /**
+         * Initialization
+         * @internal
+         */
+        init(path?: string, overrides?: Record<string, any>): Promise<void>;
+        /**
+         * @zh
+         * 覆盖一部分配置数据。
+         *
+         * @en
+         * Override some configuration info in Settings module.
+         *
+         * @param category @en The category you want to override. @zh 想要覆盖的分组。
+         * @param name @en The name of the configuration in the category you want to override. @zh 分组中想要覆盖的具体配置名称。
+         * @param value @en The value of the configuration you want to override. @zh 想要覆盖的具体值。
+         *
+         * @example
+         * ```ts
+         * console.log(settings.querySettings(Settings.Category.ASSETS, 'server')); // print https://www.cocos.com
+         * settings.overrideSettings(Settings.Category.ASSETS, 'server', 'http://www.test.com');
+         * console.log(settings.querySettings(Settings.Category.ASSETS, 'server')); // print http://www.test.com
+         * ```
+         */
+        overrideSettings<T = any>(category: __private._cocos_core_settings__Category | string, name: string, value: T): void;
+        /**
+         * @zh
+         * 查询配置模块中具体分组中的具体配置值。
+         *
+         * @en
+         * Query specific configuration values in specific category in the settings module.
+         *
+         * @param category @en The name of category to query. @zh 想要查询的分组名称。
+         * @param name @en The name of configuration in category to query. @zh 分组中想要查询的具体的配置名称。
+         * @returns @en The value of configuration to query. @zh 想要查询的具体配置值。
+         *
+         * @example
+         * ```ts
+         * console.log(settings.querySettings(Settings.Category.ENGINE, 'debug')); // print false
+         * ```
+         */
+        querySettings<T = any>(category: __private._cocos_core_settings__Category | string, name: string): T | null;
+    }
+    export namespace Settings {
+        export type Category = typeof __private._cocos_core_settings__Category;
+    }
+    /**
+     * @zh
+     * Settings 模块单例,你能通过此单例访问 settings.json 中的配置数据。
+     * @en
+     * Settings module singleton, through this you can access the configuration data in settings.json.
+     */
+    export const settings: Settings;
+    export function bezier(C1: number, C2: number, C3: number, C4: number, t: number): number;
+    export function bezierByTime(controlPoints: BezierControlPoints, x: number): number;
+    export type BezierControlPoints = [
+        number,
+        number,
+        number,
+        number
+    ];
+    export function createDefaultPipeline(): ForwardPipeline;
+    export namespace pipeline {
+        export enum SetIndex {
+            GLOBAL = 0,
+            MATERIAL = 1,
+            LOCAL = 2
+        }
+        /**
+         * @en The predefined render priorities
+         * @zh 预设的渲染优先级。
+         */
+        export enum RenderPriority {
+            MIN = 0,
+            MAX = 255,
+            DEFAULT = 128
+        }
+        /**
+         * @internal This method only used to init localDescriptorSetLayout.layouts[UBOSkinning.NAME]
+         */
+        export function localDescriptorSetLayout_ResizeMaxJoints(maxCount: number): void;
+        /**
+         * @en Does the device support single-channeled half float texture? (for both color attachment and sampling)
+         * @zh 当前设备是否支持单通道半浮点贴图?(颜色输出和采样)
+         */
+        export function supportsR16HalfFloatTexture(device: gfx.Device): boolean;
+        /**
+         * @en Does the device support single-channeled float texture? (for both color attachment and sampling)
+         * @zh 当前设备是否支持单通道浮点贴图?(颜色输出和采样)
+         */
+        export function supportsR32FloatTexture(device: gfx.Device): boolean;
+        export const PIPELINE_FLOW_MAIN = "MainFlow";
+        export const PIPELINE_FLOW_FORWARD = "ForwardFlow";
+        export const PIPELINE_FLOW_SHADOW = "ShadowFlow";
+        export const PIPELINE_FLOW_SMAA = "SMAAFlow";
+        export const PIPELINE_FLOW_TONEMAP = "ToneMapFlow";
+        /**
+         * @en The predefined render pass stage ids
+         * @zh 预设的渲染阶段。
+         */
+        export enum RenderPassStage {
+            DEFAULT = 100,
+            UI = 200
+        }
+        /**
+         * @en Render object interface
+         * @zh 渲染对象接口。
+         */
+        export interface IRenderObject {
+            model: renderer.scene.Model;
+            depth: number;
+        }
+        export interface IRenderPass {
+            priority: number;
+            hash: number;
+            depth: number;
+            shaderId: number;
+            subModel: renderer.scene.SubModel;
+            passIdx: number;
+        }
+        /**
+         * @en Render batch interface
+         * @zh 渲染批次接口。
+         */
+        export interface IRenderBatch {
+            pass: renderer.Pass;
+        }
+        /**
+         * @en Render queue descriptor
+         * @zh 渲染队列描述。
+         */
+        export interface IRenderQueueDesc {
+            isTransparent: boolean;
+            phases: number;
+            sortFunc: (a: IRenderPass, b: IRenderPass) => number;
+        }
+        export interface IDescriptorSetLayoutInfo {
+            bindings: gfx.DescriptorSetLayoutBinding[];
+            layouts: Record<string, gfx.UniformBlock | gfx.UniformSamplerTexture | gfx.UniformStorageImage | gfx.UniformStorageBuffer>;
+        }
+        export const globalDescriptorSetLayout: IDescriptorSetLayoutInfo;
+        export const localDescriptorSetLayout: IDescriptorSetLayoutInfo;
+        /**
+         * @en The uniform bindings
+         * @zh Uniform 参数绑定。
+         */
+        export enum PipelineGlobalBindings {
+            UBO_GLOBAL = 0,
+            UBO_CAMERA = 1,
+            UBO_SHADOW = 2,
+            UBO_CSM = 3,
+            SAMPLER_SHADOWMAP = 4,
+            SAMPLER_ENVIRONMENT = 5,
+            SAMPLER_SPOT_SHADOW_MAP = 6,
+            SAMPLER_DIFFUSEMAP = 7,
+            COUNT = 8
+        }
+        export enum ModelLocalBindings {
+            UBO_LOCAL = 0,
+            UBO_FORWARD_LIGHTS = 1,
+            UBO_SKINNING_ANIMATION = 2,
+            UBO_SKINNING_TEXTURE = 3,
+            UBO_MORPH = 4,
+            UBO_UI_LOCAL = 5,
+            SAMPLER_JOINTS = 6,
+            SAMPLER_MORPH_POSITION = 7,
+            SAMPLER_MORPH_NORMAL = 8,
+            SAMPLER_MORPH_TANGENT = 9,
+            SAMPLER_LIGHTMAP = 10,
+            SAMPLER_SPRITE = 11,
+            SAMPLER_REFLECTION = 12,
+            STORAGE_REFLECTION = 13,
+            COUNT = 14
+        }
+        export const bindingMappingInfo: gfx.BindingMappingInfo;
+        /**
+         * @en The global uniform buffer object
+         * @zh 全局 UBO。
+         */
+        export class UBOGlobal {
+            static readonly TIME_OFFSET = 0;
+            static readonly SCREEN_SIZE_OFFSET: number;
+            static readonly NATIVE_SIZE_OFFSET: number;
+            static readonly DEBUG_VIEW_MODE_OFFSET: number;
+            static readonly DEBUG_VIEW_COMPOSITE_PACK_1_OFFSET: number;
+            static readonly DEBUG_VIEW_COMPOSITE_PACK_2_OFFSET: number;
+            static readonly DEBUG_VIEW_COMPOSITE_PACK_3_OFFSET: number;
+            static readonly COUNT: number;
+            static readonly SIZE: number;
+            static readonly NAME = "CCGlobal";
+            static readonly BINDING = PipelineGlobalBindings.UBO_GLOBAL;
+            static readonly DESCRIPTOR: gfx.DescriptorSetLayoutBinding;
+            static readonly LAYOUT: gfx.UniformBlock;
+        }
+        /**
+         * @en The global camera uniform buffer object
+         * @zh 全局相机 UBO。
+         */
+        export class UBOCamera {
+            static readonly MAT_VIEW_OFFSET = 0;
+            static readonly MAT_VIEW_INV_OFFSET: number;
+            static readonly MAT_PROJ_OFFSET: number;
+            static readonly MAT_PROJ_INV_OFFSET: number;
+            static readonly MAT_VIEW_PROJ_OFFSET: number;
+            static readonly MAT_VIEW_PROJ_INV_OFFSET: number;
+            static readonly CAMERA_POS_OFFSET: number;
+            static readonly SURFACE_TRANSFORM_OFFSET: number;
+            static readonly SCREEN_SCALE_OFFSET: number;
+            static readonly EXPOSURE_OFFSET: number;
+            static readonly MAIN_LIT_DIR_OFFSET: number;
+            static readonly MAIN_LIT_COLOR_OFFSET: number;
+            static readonly AMBIENT_SKY_OFFSET: number;
+            static readonly AMBIENT_GROUND_OFFSET: number;
+            static readonly GLOBAL_FOG_COLOR_OFFSET: number;
+            static readonly GLOBAL_FOG_BASE_OFFSET: number;
+            static readonly GLOBAL_FOG_ADD_OFFSET: number;
+            static readonly NEAR_FAR_OFFSET: number;
+            static readonly VIEW_PORT_OFFSET: number;
+            static readonly COUNT: number;
+            static readonly SIZE: number;
+            static readonly NAME = "CCCamera";
+            static readonly BINDING = PipelineGlobalBindings.UBO_CAMERA;
+            static readonly DESCRIPTOR: gfx.DescriptorSetLayoutBinding;
+            static readonly LAYOUT: gfx.UniformBlock;
+        }
+        /**
+         * @en The uniform buffer object for 'cast shadow(fixed || csm)' && 'dir fixed area shadow' && 'spot shadow' && 'sphere shadow' && 'planar shadow'
+         * @zh 这个 UBO 仅仅只给 'cast shadow(fixed || csm)' && 'dir fixed area shadow' && 'spot shadow' && 'sphere shadow' && 'planar shadow' 使用
+         */
+        export class UBOShadow {
+            static readonly MAT_LIGHT_VIEW_OFFSET = 0;
+            static readonly MAT_LIGHT_VIEW_PROJ_OFFSET: number;
+            static readonly SHADOW_INV_PROJ_DEPTH_INFO_OFFSET: number;
+            static readonly SHADOW_PROJ_DEPTH_INFO_OFFSET: number;
+            static readonly SHADOW_PROJ_INFO_OFFSET: number;
+            static readonly SHADOW_NEAR_FAR_LINEAR_SATURATION_INFO_OFFSET: number;
+            static readonly SHADOW_WIDTH_HEIGHT_PCF_BIAS_INFO_OFFSET: number;
+            static readonly SHADOW_LIGHT_PACKING_NBIAS_NULL_INFO_OFFSET: number;
+            static readonly SHADOW_COLOR_OFFSET: number;
+            static readonly PLANAR_NORMAL_DISTANCE_INFO_OFFSET: number;
+            static readonly COUNT: number;
+            static readonly SIZE: number;
+            static readonly NAME = "CCShadow";
+            static readonly BINDING = PipelineGlobalBindings.UBO_SHADOW;
+            static readonly DESCRIPTOR: gfx.DescriptorSetLayoutBinding;
+            static readonly LAYOUT: gfx.UniformBlock;
+        }
+        /**
+         * @en The uniform buffer object only for dir csm shadow(level: 1 ~ 4)
+         * @zh 级联阴影使用的UBO
+         */
+        export class UBOCSM {
+            static readonly CSM_LEVEL_COUNT = 4;
+            static readonly CSM_VIEW_DIR_0_OFFSET = 0;
+            static readonly CSM_VIEW_DIR_1_OFFSET: number;
+            static readonly CSM_VIEW_DIR_2_OFFSET: number;
+            static readonly CSM_ATLAS_OFFSET: number;
+            static readonly MAT_CSM_VIEW_PROJ_OFFSET: number;
+            static readonly CSM_PROJ_DEPTH_INFO_OFFSET: number;
+            static readonly CSM_PROJ_INFO_OFFSET: number;
+            static readonly CSM_SPLITS_INFO_OFFSET: number;
+            static readonly COUNT: number;
+            static readonly SIZE: number;
+            static readonly NAME = "CCCSM";
+            static readonly BINDING = PipelineGlobalBindings.UBO_CSM;
+            static readonly DESCRIPTOR: gfx.DescriptorSetLayoutBinding;
+            static readonly LAYOUT: gfx.UniformBlock;
+        }
+        export const UNIFORM_SHADOWMAP_BINDING = PipelineGlobalBindings.SAMPLER_SHADOWMAP;
+        export const UNIFORM_ENVIRONMENT_BINDING = PipelineGlobalBindings.SAMPLER_ENVIRONMENT;
+        export const UNIFORM_DIFFUSEMAP_BINDING = PipelineGlobalBindings.SAMPLER_DIFFUSEMAP;
+        export const UNIFORM_SPOT_SHADOW_MAP_TEXTURE_BINDING = PipelineGlobalBindings.SAMPLER_SPOT_SHADOW_MAP;
+        /**
+         * @en The local uniform buffer object
+         * @zh 本地 UBO。
+         */
+        export class UBOLocal {
+            static readonly MAT_WORLD_OFFSET = 0;
+            static readonly MAT_WORLD_IT_OFFSET: number;
+            static readonly LIGHTINGMAP_UVPARAM: number;
+            static readonly LOCAL_SHADOW_BIAS: number;
+            static readonly COUNT: number;
+            static readonly SIZE: number;
+            static readonly NAME = "CCLocal";
+            static readonly BINDING = ModelLocalBindings.UBO_LOCAL;
+            static readonly DESCRIPTOR: gfx.DescriptorSetLayoutBinding;
+            static readonly LAYOUT: gfx.UniformBlock;
+        }
+        /**
+         * @en The world bound uniform buffer object
+         * @zh 世界空间包围盒 UBO。
+         */
+        export class UBOWorldBound {
+            static readonly WORLD_BOUND_CENTER = 0;
+            static readonly WORLD_BOUND_HALF_EXTENTS: number;
+            static readonly COUNT: number;
+            static readonly SIZE: number;
+            static readonly NAME = "CCWorldBound";
+            static readonly BINDING = ModelLocalBindings.UBO_LOCAL;
+            static readonly DESCRIPTOR: gfx.DescriptorSetLayoutBinding;
+            static readonly LAYOUT: gfx.UniformBlock;
+        }
+        export const INST_MAT_WORLD = "a_matWorld0";
+        export class UBOLocalBatched {
+            static readonly BATCHING_COUNT = 10;
+            static readonly MAT_WORLDS_OFFSET = 0;
+            static readonly COUNT: number;
+            static readonly SIZE: number;
+            static readonly NAME = "CCLocalBatched";
+            static readonly BINDING = ModelLocalBindings.UBO_LOCAL;
+            static readonly DESCRIPTOR: gfx.DescriptorSetLayoutBinding;
+            static readonly LAYOUT: gfx.UniformBlock;
+        }
+        /**
+         * @en The uniform buffer object for forward lighting
+         * @zh 前向灯光 UBO。
+         */
+        export class UBOForwardLight {
+            static readonly LIGHTS_PER_PASS = 1;
+            static readonly LIGHT_POS_OFFSET = 0;
+            static readonly LIGHT_COLOR_OFFSET: number;
+            static readonly LIGHT_SIZE_RANGE_ANGLE_OFFSET: number;
+            static readonly LIGHT_DIR_OFFSET: number;
+            static readonly COUNT: number;
+            static readonly SIZE: number;
+            static readonly NAME = "CCForwardLight";
+            static readonly BINDING = ModelLocalBindings.UBO_FORWARD_LIGHTS;
+            static readonly DESCRIPTOR: gfx.DescriptorSetLayoutBinding;
+            static readonly LAYOUT: gfx.UniformBlock;
+        }
+        export class UBODeferredLight {
+            static readonly LIGHTS_PER_PASS = 10;
+        }
+        export const JOINT_UNIFORM_CAPACITY = 30;
+        /**
+         * @en The uniform buffer object for skinning texture
+         * @zh 骨骼贴图 UBO。
+         */
+        export class UBOSkinningTexture {
+            static readonly JOINTS_TEXTURE_INFO_OFFSET = 0;
+            static readonly COUNT: number;
+            static readonly SIZE: number;
+            static readonly NAME = "CCSkinningTexture";
+            static readonly BINDING = ModelLocalBindings.UBO_SKINNING_TEXTURE;
+            static readonly DESCRIPTOR: gfx.DescriptorSetLayoutBinding;
+            static readonly LAYOUT: gfx.UniformBlock;
+        }
+        export class UBOSkinningAnimation {
+            static readonly JOINTS_ANIM_INFO_OFFSET = 0;
+            static readonly COUNT: number;
+            static readonly SIZE: number;
+            static readonly NAME = "CCSkinningAnimation";
+            static readonly BINDING = ModelLocalBindings.UBO_SKINNING_ANIMATION;
+            static readonly DESCRIPTOR: gfx.DescriptorSetLayoutBinding;
+            static readonly LAYOUT: gfx.UniformBlock;
+        }
+        export const INST_JOINT_ANIM_INFO = "a_jointAnimInfo";
+        export class UBOSkinning {
+            static get JOINT_UNIFORM_CAPACITY(): number;
+            static get COUNT(): number;
+            static get SIZE(): number;
+            static readonly NAME = "CCSkinning";
+            static readonly BINDING = ModelLocalBindings.UBO_SKINNING_TEXTURE;
+            static readonly DESCRIPTOR: gfx.DescriptorSetLayoutBinding;
+            static readonly LAYOUT: gfx.UniformBlock;
+            /**
+             * @internal This method only used init UBOSkinning configure.
+             */
+            static initLayout(capacity: number): void;
+        }
+        /**
+         * @en The uniform buffer object for morph setting
+         * @zh 形变配置的 UBO
+         */
+        export class UBOMorph {
+            static readonly MAX_MORPH_TARGET_COUNT = 60;
+            static readonly OFFSET_OF_WEIGHTS = 0;
+            static readonly OFFSET_OF_DISPLACEMENT_TEXTURE_WIDTH: number;
+            static readonly OFFSET_OF_DISPLACEMENT_TEXTURE_HEIGHT: number;
+            static readonly OFFSET_OF_VERTICES_COUNT: number;
+            static readonly COUNT_BASE_4_BYTES: number;
+            static readonly SIZE: number;
+            static readonly NAME = "CCMorph";
+            static readonly BINDING = ModelLocalBindings.UBO_MORPH;
+            static readonly DESCRIPTOR: gfx.DescriptorSetLayoutBinding;
+            static readonly LAYOUT: gfx.UniformBlock;
+        }
+        export class UBOUILocal {
+            static readonly NAME = "CCUILocal";
+            static readonly BINDING = ModelLocalBindings.UBO_UI_LOCAL;
+            static readonly DESCRIPTOR: gfx.DescriptorSetLayoutBinding;
+            static readonly LAYOUT: gfx.UniformBlock;
+        }
+        export const UNIFORM_JOINT_TEXTURE_BINDING = ModelLocalBindings.SAMPLER_JOINTS;
+        export const UNIFORM_REALTIME_JOINT_TEXTURE_BINDING = ModelLocalBindings.SAMPLER_JOINTS;
+        export const UNIFORM_POSITION_MORPH_TEXTURE_BINDING = ModelLocalBindings.SAMPLER_MORPH_POSITION;
+        export const UNIFORM_NORMAL_MORPH_TEXTURE_BINDING = ModelLocalBindings.SAMPLER_MORPH_NORMAL;
+        export const UNIFORM_TANGENT_MORPH_TEXTURE_BINDING = ModelLocalBindings.SAMPLER_MORPH_TANGENT;
+        export const UNIFORM_LIGHTMAP_TEXTURE_BINDING = ModelLocalBindings.SAMPLER_LIGHTMAP;
+        export const UNIFORM_SPRITE_TEXTURE_BINDING = ModelLocalBindings.SAMPLER_SPRITE;
+        export const UNIFORM_REFLECTION_TEXTURE_BINDING = ModelLocalBindings.SAMPLER_REFLECTION;
+        export const UNIFORM_REFLECTION_STORAGE_BINDING = ModelLocalBindings.STORAGE_REFLECTION;
+        export const CAMERA_DEFAULT_MASK: number;
+        export const CAMERA_EDITOR_MASK: number;
+        export const MODEL_ALWAYS_MASK: number;
+    }
+    /**
+     * @en Render pipeline describes how we handle the rendering process for all render objects in the related render scene root.
+     * It contains some general pipeline configurations, necessary rendering resources and some [[RenderFlow]]s.
+     * The rendering process function [[render]] is invoked by [[Root]] for all [[Camera]]s.
+     * @zh 渲染管线对象决定了引擎对相关渲染场景下的所有渲染对象实施的完整渲染流程。
+     * 这个类主要包含一些通用的管线配置,必要的渲染资源和一些 [[RenderFlow]]。
+     * 渲染流程函数 [[render]] 会由 [[Root]] 发起调用并对所有 [[Camera]] 执行预设的渲染流程。
+     */
+    export abstract class RenderPipeline extends Asset implements __private._cocos_rendering_pipeline_event__IPipelineEvent, __private._cocos_rendering_custom_pipeline__PipelineRuntime {
+        /**
+         * @en The tag of pipeline.
+         * @zh 管线的标签。
+         * @readonly
+         */
+        get tag(): number;
+        /**
+         * @en The flows of pipeline.
+         * @zh 管线的渲染流程列表。
+         * @readonly
+         */
+        get flows(): RenderFlow[];
+        /**
+         * @en Tag
+         * @zh 标签
+         * @readonly
+         */
+        protected _tag: number;
+        /**
+         * @en Flows
+         * @zh 渲染流程列表
+         * @readonly
+         */
+        protected _flows: RenderFlow[];
+        protected _quadIB: gfx.Buffer | null;
+        protected _quadVBOnscreen: gfx.Buffer | null;
+        protected _quadVBOffscreen: gfx.Buffer | null;
+        protected _quadIAOnscreen: gfx.InputAssembler | null;
+        protected _quadIAOffscreen: gfx.InputAssembler | null;
+        protected _eventProcessor: PipelineEventProcessor;
+        /**
+         * @zh
+         * 四边形输入汇集器。
+         */
+        get quadIAOnscreen(): gfx.InputAssembler;
+        get quadIAOffscreen(): gfx.InputAssembler;
+        getPipelineRenderData(): __private._cocos_rendering_render_pipeline__PipelineRenderData;
+        /**
+         * @en
+         * Constant macro string, static throughout the whole runtime.
+         * Used to pass device-specific parameters to shader.
+         * @zh 常量宏定义字符串,运行时全程不会改变,用于给 shader 传一些只和平台相关的参数。
+         * @readonly
+         */
+        get constantMacros(): string;
+        /**
+         * @en
+         * The current global-scoped shader macros.
+         * Used to control effects like IBL, fog, etc.
+         * @zh 当前的全局宏定义,用于控制如 IBL、雾效等模块。
+         * @readonly
+         */
+        get macros(): renderer.MacroRecord;
+        get device(): gfx.Device;
+        get globalDSManager(): __private._cocos_rendering_global_descriptor_set_manager__GlobalDSManager;
+        get descriptorSetLayout(): gfx.DescriptorSetLayout;
+        get descriptorSet(): gfx.DescriptorSet;
+        get commandBuffers(): gfx.CommandBuffer[];
+        get pipelineUBO(): __private._cocos_rendering_pipeline_ubo__PipelineUBO;
+        get pipelineSceneData(): PipelineSceneData;
+        set profiler(value: renderer.scene.Model | null);
+        get profiler(): renderer.scene.Model | null;
+        /**
+         * @deprecated since v3.6, please use camera.geometryRenderer instead.
+         */
+        get geometryRenderer(): GeometryRenderer | null;
+        set clusterEnabled(value: boolean);
+        get clusterEnabled(): boolean;
+        set bloomEnabled(value: boolean);
+        get bloomEnabled(): boolean;
+        protected _device: gfx.Device;
+        protected _globalDSManager: __private._cocos_rendering_global_descriptor_set_manager__GlobalDSManager;
+        protected _descriptorSet: gfx.DescriptorSet;
+        protected _commandBuffers: gfx.CommandBuffer[];
+        protected _pipelineUBO: __private._cocos_rendering_pipeline_ubo__PipelineUBO;
+        protected _macros: renderer.MacroRecord;
+        protected _constantMacros: string;
+        protected _profiler: renderer.scene.Model | null;
+        protected _geometryRenderer: GeometryRenderer | null;
+        protected _pipelineSceneData: PipelineSceneData;
+        protected _pipelineRenderData: __private._cocos_rendering_render_pipeline__PipelineRenderData | null;
+        protected _renderPasses: Map<gfx.ClearFlagBit, gfx.RenderPass>;
+        protected _width: number;
+        protected _height: number;
+        protected _lastUsedRenderArea: gfx.Rect;
+        protected _clusterEnabled: boolean;
+        protected _bloomEnabled: boolean;
+        /**
+         * @en The initialization process, user shouldn't use it in most case, only useful when need to generate render pipeline programmatically.
+         * @zh 初始化函数,正常情况下不会用到,仅用于程序化生成渲染管线的情况。
+         * @param info The render pipeline information
+         */
+        initialize(info: __private._cocos_rendering_render_pipeline__IRenderPipelineInfo): boolean;
+        createRenderPass(clearFlags: gfx.ClearFlags, colorFmt: gfx.Format, depthFmt: gfx.Format): gfx.RenderPass;
+        getRenderPass(clearFlags: gfx.ClearFlags, fbo: gfx.Framebuffer): gfx.RenderPass;
+        applyFramebufferRatio(framebuffer: gfx.Framebuffer): void;
+        /**
+         * @en generate renderArea by camera
+         * @zh 生成renderArea
+         * @param camera the camera
+         * @returns
+         */
+        generateRenderArea(camera: renderer.scene.Camera, out: gfx.Rect): void;
+        generateViewport(camera: renderer.scene.Camera, out?: gfx.Viewport): gfx.Viewport;
+        generateScissor(camera: renderer.scene.Camera, out?: gfx.Rect): gfx.Rect;
+        get shadingScale(): number;
+        set shadingScale(val: number);
+        getMacroString(name: string): string;
+        getMacroInt(name: string): number;
+        getMacroBool(name: string): boolean;
+        setMacroString(name: string, value: string): void;
+        setMacroInt(name: string, value: number): void;
+        setMacroBool(name: string, value: boolean): void;
+        /**
+         * @en Activate the render pipeline after loaded, it mainly activate the flows
+         * @zh 当渲染管线资源加载完成后,启用管线,主要是启用管线内的 flow
+         * TODO: remove swapchain dependency at this stage
+         * after deferred pipeline can handle multiple swapchains
+         */
+        activate(swapchain: gfx.Swapchain): boolean;
+        protected _ensureEnoughSize(cameras: renderer.scene.Camera[]): void;
+        /**
+         * @en Render function, it basically run the render process of all flows in sequence for the given view.
+         * @zh 渲染函数,对指定的渲染视图按顺序执行所有渲染流程。
+         * @param view Render view。
+         */
+        render(cameras: renderer.scene.Camera[]): void;
+        /**
+         * @zh
+         * 销毁四边形输入汇集器。
+         */
+        protected _destroyQuadInputAssembler(): void;
+        protected _destroyBloomData(): void;
+        /**
+         * @zh
+         * 创建四边形输入汇集器。
+         */
+        protected _createQuadInputAssembler(): __private._cocos_rendering_render_pipeline__PipelineInputAssemblerData;
+        updateQuadVertexData(renderArea: gfx.Rect, window: __private._cocos_render_scene_core_render_window__RenderWindow): void;
+        /**
+         * @en Internal destroy function
+         * @zh 内部销毁函数。
+         */
+        destroy(): boolean;
+        onGlobalPipelineStateChanged(): void;
+        protected _generateConstantMacros(): void;
+        protected updateGeometryRenderer(cameras: renderer.scene.Camera[]): void;
+        generateBloomRenderData(): void;
+        /**
+         * @en
+         * Register an callback of the pipeline event type on the RenderPipeline.
+         * @zh
+         * 在渲染管线中注册管线事件类型的回调。
+         */
+        on(type: PipelineEventType, callback: any, target?: any, once?: boolean): typeof callback;
+        /**
+         * @en
+         * Register an callback of the pipeline event type on the RenderPipeline,
+         * the callback will remove itself after the first time it is triggered.
+         * @zh
+         * 在渲染管线中注册管线事件类型的回调, 回调后会在第一时间删除自身。
+         */
+        once(type: PipelineEventType, callback: any, target?: any): typeof callback;
+        /**
+         * @en
+         * Removes the listeners previously registered with the same type, callback, target and or useCapture,
+         * if only type is passed as parameter, all listeners registered with that type will be removed.
+         * @zh
+         * 删除之前用同类型、回调、目标或 useCapture 注册的事件监听器,如果只传递 type,将会删除 type 类型的所有事件监听器。
+         */
+        off(type: PipelineEventType, callback?: any, target?: any): void;
+        /**
+         * @zh 派发一个指定事件,并传递需要的参数
+         * @en Trigger an event directly with the event name and necessary arguments.
+         * @param type - event type
+         * @param args - Arguments when the event triggered
+         */
+        emit(type: PipelineEventType, arg0?: any, arg1?: any, arg2?: any, arg3?: any, arg4?: any): void;
+        /**
+         * @en Removes all callbacks previously registered with the same target (passed as parameter).
+         * This is not for removing all listeners in the current event target,
+         * and this is not for removing all listeners the target parameter have registered.
+         * It's only for removing all listeners (callback and target couple) registered on the current event target by the target parameter.
+         * @zh 在当前 EventTarget 上删除指定目标(target 参数)注册的所有事件监听器。
+         * 这个函数无法删除当前 EventTarget 的所有事件监听器,也无法删除 target 参数所注册的所有事件监听器。
+         * 这个函数只能删除 target 参数在当前 EventTarget 上注册的所有事件监听器。
+         * @param typeOrTarget - The target to be searched for all related listeners
+         */
+        targetOff(typeOrTarget: any): void;
+        /**
+         * @zh 移除在特定事件类型中注册的所有回调或在某个目标中注册的所有回调。
+         * @en Removes all callbacks registered in a certain event type or all callbacks registered with a certain target
+         * @param typeOrTarget - The event type or target with which the listeners will be removed
+         */
+        removeAll(typeOrTarget: any): void;
+        /**
+         * @zh 检查指定事件是否已注册回调。
+         * @en Checks whether there is correspond event listener registered on the given event.
+         * @param type - Event type.
+         * @param callback - Callback function when event triggered.
+         * @param target - Callback callee.
+         */
+        hasEventListener(type: PipelineEventType, callback?: any, target?: any): boolean;
+    }
+    /**
+     * @en Render flow is a sub process of the [[RenderPipeline]], it dispatch the render task to all the [[RenderStage]]s.
+     * @zh 渲染流程是渲染管线([[RenderPipeline]])的一个子过程,它将渲染任务派发到它的所有渲染阶段([[RenderStage]])中执行。
+     */
+    export abstract class RenderFlow {
+        /**
+         * @en The name of the render flow
+         * @zh 渲染流程的名字
+         */
+        get name(): string;
+        /**
+         * @en Priority of the current flow
+         * @zh 当前渲染流程的优先级。
+         */
+        get priority(): number;
+        /**
+         * @en Tag of the current flow
+         * @zh 当前渲染流程的标签。
+         */
+        get tag(): number;
+        /**
+         * @en The stages of flow.
+         * @zh 渲染流程 stage 列表。
+         * @readonly
+         */
+        get stages(): RenderStage[];
+        protected _name: string;
+        protected _priority: number;
+        protected _tag: number;
+        protected _stages: RenderStage[];
+        protected _pipeline: RenderPipeline;
+        /**
+         * @en Get pipeline
+         * @zh 获取pipeline
+         */
+        get pipeline(): RenderPipeline;
+        /**
+         * @en The initialization process, user shouldn't use it in most case, only useful when need to generate render pipeline programmatically.
+         * @zh 初始化函数,正常情况下不会用到,仅用于程序化生成渲染管线的情况。
+         * @param info The render flow information
+         */
+        initialize(info: __private._cocos_rendering_render_flow__IRenderFlowInfo): boolean;
+        /**
+         * @en Activate the current render flow in the given pipeline
+         * @zh 为指定的渲染管线开启当前渲染流程
+         * @param pipeline The render pipeline to activate this render flow
+         */
+        activate(pipeline: RenderPipeline): void;
+        /**
+         * @en Render function, it basically run all render stages in sequence for the given view.
+         * @zh 渲染函数,对指定的渲染视图按顺序执行所有渲染阶段。
+         * @param view Render view。
+         */
+        render(camera: renderer.scene.Camera): void;
+        /**
+         * @en Destroy function.
+         * @zh 销毁函数。
+         */
+        destroy(): void;
+    }
+    /**
+     * @en The render stage actually renders render objects to the output window or other GFX [[gfx.Framebuffer]].
+     * Typically, a render stage collects render objects it's responsible for, clear the camera,
+     * record and execute command buffer, and at last present the render result.
+     * @zh 渲染阶段是实质上的渲染执行者,它负责收集渲染数据并执行渲染将渲染结果输出到屏幕或其他 GFX [[gfx.Framebuffer]] 中。
+     * 典型的渲染阶段会收集它所管理的渲染对象,按照 [[Camera]] 的清除标记进行清屏,记录并执行渲染指令缓存,并最终呈现渲染结果。
+     */
+    export abstract class RenderStage {
+        /**
+         * @en Name of the current stage
+         * @zh 当前渲染阶段的名字。
+         */
+        get name(): string;
+        /**
+         * @en Priority of the current stage
+         * @zh 当前渲染阶段的优先级。
+         */
+        get priority(): number;
+        /**
+         * @en Tag of the current stage
+         * @zh 当前渲染阶段的标签。
+         */
+        get tag(): number;
+        /**
+         * @en Name
+         * @zh 名称。
+         */
+        protected _name: string;
+        /**
+         * @en Priority
+         * @zh 优先级。
+         */
+        protected _priority: number;
+        /**
+         * @en Whether to enable
+         * @zh 是否启用。
+         */
+        protected _enabled: boolean;
+        set enabled(val: boolean);
+        get enabled(): boolean;
+        /**
+         * @en Type
+         * @zh 类型。
+         */
+        protected _tag: number;
+        protected _pipeline: RenderPipeline;
+        protected _flow: RenderFlow;
+        /**
+         * @en The initialization process, user shouldn't use it in most case, only useful when need to generate render pipeline programmatically.
+         * @zh 初始化函数,正常情况下不会用到,仅用于程序化生成渲染管线的情况。
+         * @param info The render stage information
+         */
+        initialize(info: __private._cocos_rendering_render_stage__IRenderStageInfo): boolean;
+        /**
+         * @en Activate the current render stage in the given render flow
+         * @zh 为指定的渲染流程开启当前渲染阶段
+         * @param flow The render flow to activate this render stage
+         */
+        activate(pipeline: RenderPipeline, flow: RenderFlow): void;
+        /**
+         * @en Destroy function
+         * @zh 销毁函数。
+         */
+        abstract destroy(): any;
+        /**
+         * @en Render function
+         * @zh 渲染函数。
+         * @param view The render view
+         */
+        abstract render(camera: renderer.scene.Camera): any;
+    }
+    export class PipelineSceneData {
+        /**
+         * @en Is open HDR.
+         * @zh 是否开启 HDR。
+         * @readonly
+         */
+        get isHDR(): boolean;
+        set isHDR(val: boolean);
+        get shadingScale(): number;
+        set shadingScale(val: number);
+        get csmSupported(): boolean;
+        set csmSupported(val: boolean);
+        fog: renderer.scene.Fog;
+        ambient: renderer.scene.Ambient;
+        skybox: renderer.scene.Skybox;
+        shadows: renderer.scene.Shadows;
+        csmLayers: __private._cocos_rendering_shadow_csm_layers__CSMLayers;
+        octree: renderer.scene.Octree;
+        /**
+         * @en The list for valid punctual Lights, only available after the scene culling of the current frame.
+         * @zh 场景中精确的有效光源,仅在当前帧的场景剔除完成后有效。
+         */
+        validPunctualLights: renderer.scene.Light[];
+        /**
+         * @en The list for render objects, only available after the scene culling of the current frame.
+         * @zh 渲染对象数组,仅在当前帧的场景剔除完成后有效。
+         */
+        renderObjects: pipeline.IRenderObject[];
+        shadowFrameBufferMap: Map<renderer.scene.Light, gfx.Framebuffer>;
+        protected _device: gfx.Device;
+        protected _geometryRendererMaterials: Material[];
+        protected _geometryRendererPasses: renderer.Pass[];
+        protected _geometryRendererShaders: gfx.Shader[];
+        protected _occlusionQueryVertexBuffer: gfx.Buffer | null;
+        protected _occlusionQueryIndicesBuffer: gfx.Buffer | null;
+        protected _occlusionQueryInputAssembler: gfx.InputAssembler | null;
+        protected _occlusionQueryMaterial: Material | null;
+        protected _occlusionQueryShader: gfx.Shader | null;
+        protected _isHDR: boolean;
+        protected _shadingScale: number;
+        protected _csmSupported: boolean;
+        constructor();
+        activate(device: gfx.Device): boolean;
+        initGeometryRendererMaterials(): void;
+        get geometryRendererPasses(): renderer.Pass[];
+        get geometryRendererShaders(): gfx.Shader[];
+        initOcclusionQuery(): void;
+        getOcclusionQueryPass(): renderer.Pass | null;
+        updatePipelineSceneData(): void;
+        destroy(): void;
+    }
+    /**
+     * @en The forward render pipeline
+     * @zh 前向渲染管线。
+     */
+    export class ForwardPipeline extends RenderPipeline {
+        protected renderTextures: __private._cocos_rendering_pipeline_serialization__RenderTextureConfig[];
+        protected _postRenderPass: gfx.RenderPass | null;
+        get postRenderPass(): gfx.RenderPass | null;
+        initialize(info: __private._cocos_rendering_render_pipeline__IRenderPipelineInfo): boolean;
+        activate(swapchain: gfx.Swapchain): boolean;
+        protected _ensureEnoughSize(cameras: renderer.scene.Camera[]): void;
+        destroy(): boolean;
+    }
+    /**
+     * @en The forward flow in forward render pipeline
+     * @zh 前向渲染流程。
+     */
+    export class ForwardFlow extends RenderFlow {
+        /**
+         * @en The shared initialization information of forward render flow
+         * @zh 共享的前向渲染流程初始化参数
+         */
+        static initInfo: __private._cocos_rendering_render_flow__IRenderFlowInfo;
+        initialize(info: __private._cocos_rendering_render_flow__IRenderFlowInfo): boolean;
+        activate(pipeline: RenderPipeline): void;
+        render(camera: renderer.scene.Camera): void;
+        destroy(): void;
+    }
+    /**
+     * @en The forward render stage
+     * @zh 前向渲染阶段。
+     */
+    export class ForwardStage extends RenderStage {
+        static initInfo: __private._cocos_rendering_render_stage__IRenderStageInfo;
+        protected renderQueues: __private._cocos_rendering_pipeline_serialization__RenderQueueDesc[];
+        protected _renderQueues: __private._cocos_rendering_render_queue__RenderQueue[];
+        additiveInstanceQueues: __private._cocos_rendering_render_instanced_queue__RenderInstancedQueue[];
+        constructor();
+        initialize(info: __private._cocos_rendering_render_stage__IRenderStageInfo): boolean;
+        activate(pipeline: ForwardPipeline, flow: ForwardFlow): void;
+        destroy(): void;
+        render(camera: renderer.scene.Camera): void;
+    }
+    /**
+     * @en The deferred render pipeline
+     * @zh 延迟渲染管线。
+     */
+    export class DeferredPipeline extends RenderPipeline {
+        protected renderTextures: __private._cocos_rendering_pipeline_serialization__RenderTextureConfig[];
+        initialize(info: __private._cocos_rendering_render_pipeline__IRenderPipelineInfo): boolean;
+        activate(swapchain: gfx.Swapchain): boolean;
+        destroy(): boolean;
+        onGlobalPipelineStateChanged(): void;
+        getPipelineRenderData(): __private._cocos_rendering_deferred_deferred_pipeline__DeferredRenderData;
+        protected _ensureEnoughSize(cameras: renderer.scene.Camera[]): void;
+    }
+    /**
+     * @en The main flow in deferred render pipeline
+     * @zh 延迟渲染流程。
+     */
+    export class MainFlow extends RenderFlow {
+        /**
+         * @en The shared initialization information of main render flow
+         * @zh 共享的延迟渲染流程初始化参数
+         */
+        static initInfo: __private._cocos_rendering_render_flow__IRenderFlowInfo;
+        initialize(info: __private._cocos_rendering_render_flow__IRenderFlowInfo): boolean;
+        activate(pipeline: RenderPipeline): void;
+        render(camera: renderer.scene.Camera): void;
+        destroy(): void;
+    }
+    /**
+     * @en The gbuffer render stage
+     * @zh 前向渲染阶段。
+     */
+    export class GbufferStage extends RenderStage {
+        static initInfo: __private._cocos_rendering_render_stage__IRenderStageInfo;
+        protected renderQueues: __private._cocos_rendering_pipeline_serialization__RenderQueueDesc[];
+        protected _renderQueues: __private._cocos_rendering_render_queue__RenderQueue[];
+        constructor();
+        initialize(info: __private._cocos_rendering_render_stage__IRenderStageInfo): boolean;
+        activate(pipeline: DeferredPipeline, flow: MainFlow): void;
+        destroy(): void;
+        render(camera: renderer.scene.Camera): void;
+    }
+    /**
+     * @en The lighting render stage
+     * @zh 前向渲染阶段。
+     */
+    export class LightingStage extends RenderStage {
+        static initInfo: __private._cocos_rendering_render_stage__IRenderStageInfo;
+        constructor();
+        initialize(info: __private._cocos_rendering_render_stage__IRenderStageInfo): boolean;
+        gatherLights(camera: renderer.scene.Camera): void;
+        protected _createStageDescriptor(pass: renderer.Pass): void;
+        activate(pipeline: DeferredPipeline, flow: MainFlow): void;
+        destroy(): void;
+        render(camera: renderer.scene.Camera): void;
+    }
+    /**
+     * @en The bloom post-process stage
+     * @zh Bloom 后处理阶段。
+     */
+    export class BloomStage extends RenderStage {
+        static initInfo: __private._cocos_rendering_render_stage__IRenderStageInfo;
+        threshold: number;
+        intensity: number;
+        iterations: number;
+        constructor();
+        initialize(info: __private._cocos_rendering_render_stage__IRenderStageInfo): boolean;
+        activate(pipeline: RenderPipeline, flow: RenderFlow): void;
+        destroy(): void;
+        render(camera: renderer.scene.Camera): void;
+    }
+    /**
+     * @en The postprocess render stage
+     * @zh 后处理渲染阶段。
+     */
+    export class PostProcessStage extends RenderStage {
+        static initInfo: __private._cocos_rendering_render_stage__IRenderStageInfo;
+        constructor();
+        initialize(info: __private._cocos_rendering_render_stage__IRenderStageInfo): boolean;
+        activate(pipeline: RenderPipeline, flow: RenderFlow): void;
+        destroy(): void;
+        render(camera: renderer.scene.Camera): void;
+    }
+    /**
+     * @en Shadow map render flow
+     * @zh 阴影贴图绘制流程
+     */
+    export class ShadowFlow extends RenderFlow {
+        /**
+         * @en A common initialization info for shadow map render flow
+         * @zh 一个通用的 ShadowFlow 的初始化信息对象
+         */
+        static initInfo: __private._cocos_rendering_render_flow__IRenderFlowInfo;
+        initialize(info: __private._cocos_rendering_render_flow__IRenderFlowInfo): boolean;
+        activate(pipeline: RenderPipeline): void;
+        render(camera: renderer.scene.Camera): void;
+        destroy(): void;
+        /**
+         * @deprecated since v3.5.0, this is an engine private interface that will be removed in the future.
+         */
+        _initShadowFrameBuffer(pipeline: RenderPipeline, light: renderer.scene.Light, swapchain: gfx.Swapchain): void;
+    }
+    /**
+     * @en Shadow map render stage
+     * @zh 阴影渲染阶段。
+     */
+    export class ShadowStage extends RenderStage {
+        /**
+         * @en A common initialization info for shadow map render stage
+         * @zh 一个通用的 ShadowStage 的初始化信息对象
+         */
+        static initInfo: __private._cocos_rendering_render_stage__IRenderStageInfo;
+        /**
+         * @en Sets the render shadow map info
+         * @zh 设置阴影渲染信息
+         * @param light
+         * @param shadowFrameBuffer
+         * @param level 层级
+         */
+        setUsage(globalDS: gfx.DescriptorSet, light: renderer.scene.Light, shadowFrameBuffer: gfx.Framebuffer, level?: number): void;
+        destroy(): void;
+        clearFramebuffer(camera: renderer.scene.Camera): void;
+        render(camera: renderer.scene.Camera): void;
+        activate(pipeline: ForwardPipeline, flow: ShadowFlow): void;
+    }
+    export class InstancedBuffer {
+        instances: __private._cocos_rendering_instanced_buffer__IInstancedItem[];
+        pass: renderer.Pass;
+        hasPendingModels: boolean;
+        dynamicOffsets: number[];
+        constructor(pass: renderer.Pass);
+        destroy(): void;
+        merge(subModel: renderer.scene.SubModel, attrs: renderer.scene.IInstancedAttributeBlock, passIdx: number, shaderImplant?: gfx.Shader | null): void;
+        uploadBuffers(cmdBuff: gfx.CommandBuffer): void;
+        clear(): void;
+    }
+    export class PipelineStateManager {
+        static getOrCreatePipelineState(device: gfx.Device, pass: renderer.Pass, shader: gfx.Shader, renderPass: gfx.RenderPass, ia: gfx.InputAssembler): gfx.PipelineState;
+    }
+    export class PipelineEventProcessor extends EventTarget {
+        eventTargetOn: <TFunction extends (...any: any[]) => void>(type: string | number, callback: TFunction, thisArg?: any, once?: boolean | undefined) => TFunction;
+        eventTargetOnce: <TFunction extends (...any: any[]) => void>(type: string | number, callback: TFunction, thisArg?: any) => TFunction;
+        on(type: PipelineEventType, callback: any, target?: any, once?: boolean): typeof callback;
+        once(type: PipelineEventType, callback: any, target?: any): typeof callback;
+    }
+    export enum PipelineEventType {
+        /**
+         * @en
+         * The event type for render frame begin event
+         *
+         * @zh
+         * 帧渲染开始事件。
+         */
+        RENDER_FRAME_BEGIN = "render-frame-begin",
+        /**
+         * @en
+         * The event type for render frame end event
+         *
+         * @zh
+         * 帧渲染结束事件。
+         */
+        RENDER_FRAME_END = "render-frame-end",
+        /**
+         * @en
+         * The event type for render camera begin event
+         *
+         * @zh
+         * 相机渲染开始事件。
+         */
+        RENDER_CAMERA_BEGIN = "render-camera-begin",
+        /**
+         * @en
+         * The event type for render camera end event
+         *
+         * @zh
+         * 相机渲染结束事件。
+         */
+        RENDER_CAMERA_END = "render-camera-end",
+        /**
+         * @en
+         * FBO attachment texture zoom event
+         *
+         * @zh
+         * FBO附件纹理缩放事件。
+         */
+        ATTACHMENT_SCALE_CAHNGED = "attachment-scale-changed"
+    }
+    /**
+     * @en Rendering debug view control class
+     * @zh 渲染调试控制类
+     */
+    export class DebugView {
+        /**
+         * @en Toggle rendering single debug mode.
+         * @zh 设置渲染单项调试模式。
+         */
+        get singleMode(): __private._cocos_rendering_debug_view__DebugViewSingleType;
+        set singleMode(val: __private._cocos_rendering_debug_view__DebugViewSingleType);
+        /**
+         * @en Toggle normal / pure lighting mode.
+         * @zh 切换正常光照和仅光照模式。
+         */
+        get lightingWithAlbedo(): boolean;
+        set lightingWithAlbedo(val: boolean);
+        /**
+         * @en Toggle CSM layer coloration mode.
+         * @zh 切换级联阴影染色调试模式。
+         */
+        get csmLayerColoration(): boolean;
+        set csmLayerColoration(val: boolean);
+        protected _singleMode: __private._cocos_rendering_debug_view__DebugViewSingleType;
+        protected _compositeModeValue: number;
+        protected _lightingWithAlbedo: boolean;
+        protected _csmLayerColoration: boolean;
+        protected _nativeConfig: any;
+        constructor();
+        /**
+         * @en Whether enabled with specified rendering composite debug mode.
+         * @zh 获取指定的渲染组合调试模式是否开启。
+         * @param Specified composite type.
+         */
+        isCompositeModeEnabled(val: number): boolean;
+        /**
+         * @en Toggle specified rendering composite debug mode.
+         * @zh 开关指定的渲染组合调试模式。
+         * @param Specified composite type, enable or disable.
+         */
+        enableCompositeMode(val: __private._cocos_rendering_debug_view__DebugViewCompositeType, enable: boolean): void;
+        /**
+         * @en Toggle all rendering composite debug mode.
+         * @zh 开关所有的渲染组合调试模式。
+         */
+        enableAllCompositeMode(enable: boolean): void;
+        /**
+         * @en Get rendering debug view on / off state.
+         * @zh 查询当前是否开启了渲染调试模式。
+         */
+        isEnabled(): boolean;
+        /**
+         * @en Disable all debug view modes, reset to standard rendering mode.
+         * @zh 关闭所有的渲染调试模式,恢复到正常渲染。
+         */
+        reset(): void;
+        /**
+         * @internal
+         */
+        protected _activate(): void;
+        protected _updatePipeline(): void;
+    }
+    export const getPhaseID: (phaseName: string | number) => number;
+    export class ForwardPipelineBuilder extends __private._cocos_rendering_custom_pipeline__PipelineBuilder {
+        setup(cameras: renderer.scene.Camera[], ppl: __private._cocos_rendering_custom_pipeline__Pipeline): void;
+    }
+    export class DeferredPipelineBuilder extends __private._cocos_rendering_custom_pipeline__PipelineBuilder {
+        setup(cameras: renderer.scene.Camera[], ppl: __private._cocos_rendering_custom_pipeline__Pipeline): void;
+        readonly _deferredData: __private._cocos_rendering_custom_builtin_pipelines__DeferredData;
+    }
+    /**
+     * @zh
      * 场景树中的基本节点,基本特性有:
      * * 具有层级关系
      * * 持有各类组件
      * * 维护空间变换(坐标、旋转、缩放)信息
@@ -20816,9 +22424,9 @@
         static reserveContentsForAllSyncablePrefabTag: symbol;
         /**
          * @deprecated since v3.5.0, this is an engine private interface that will be removed in the future.
          */
-        _uiProps: __private._cocos_core_scene_graph_node_ui_properties__NodeUIProperties;
+        _uiProps: __private._cocos_scene_graph_node_ui_properties__NodeUIProperties;
         /**
          * @deprecated since v3.5.0, this is an engine private interface that will be removed in the future.
          */
         _static: boolean;
@@ -21374,8 +22982,511 @@
         export type Enum = __private._types_globals__EnumAlias<typeof Layers.Enum>;
         export type BitMask = __private._types_globals__EnumAlias<typeof Layers.BitMask>;
     }
     /**
+     * @en
+     * The EventHandler class sets the event callback in the scene.
+     * This class allows the user to set the callback target node, target component name, component method name, and call the target method through the `emit` method.
+     * @zh
+     * “EventHandler” 类用来设置场景中的事件回调,该类允许用户设置回调目标节点,目标组件名,组件方法名,并可通过 emit 方法调用目标函数。
+     *
+     * @example
+     * ```ts
+     * // Let's say we have a MainMenu component on newTarget
+     * // file: MainMenu.ts
+     * @ccclass('MainMenu')
+     * export class MainMenu extends Component {
+     *     // sender: the node MainMenu.ts belongs to
+     *     // eventType: CustomEventData
+     *     onClick (sender, eventType) {
+     *         cc.log('click');
+     *     }
+     * }
+     *
+     * import { Component } from 'cc';
+     * const eventHandler = new Component.EventHandler();
+     * eventHandler.target = newTarget;
+     * eventHandler.component = "MainMenu";
+     * eventHandler.handler = "OnClick";
+     * eventHandler.customEventData = "my data";
+     * ```
+     */
+    export class EventHandler {
+        /**
+         * @deprecated since v3.5.0, this is an engine private interface that will be removed in the future.
+         */
+        get _componentName(): any;
+        set _componentName(value: any);
+        /**
+         * @en
+         * Dispatching component events.
+         * @zh
+         * 组件事件派发。
+         *
+         * @param events - The event list to be emitted
+         * @param args - The callback arguments
+         */
+        static emitEvents(events: EventHandler[], ...args: any[]): void;
+        /**
+         * @en
+         * The node that contains target component
+         * @zh
+         * 事件响应组件和函数所在节点
+         */
+        target: Node | null;
+        /**
+         * @en
+         * The name of the component(script) that contains target callback, such as the name 'MainMenu' of the script in the example
+         * @zh
+         * 事件响应函数所在组件名(脚本名), 比如例子中的脚本名 'MainMenu'
+         */
+        component: string;
+        /**
+         * @deprecated since v3.5.0, this is an engine private interface that will be removed in the future.
+         */
+        _componentId: string;
+        /**
+         * @en
+         * Event handler, such as the callback function name 'onClick' in the example
+         * @zh
+         * 响应事件函数名,比如例子中的 'onClick' 方法名
+         */
+        handler: string;
+        /**
+         * @en
+         * Custom Event Data
+         * @zh
+         * 自定义事件数据
+         */
+        customEventData: string;
+        /**
+         * @en Trigger the target callback with given arguments
+         * @zh 触发目标组件上的指定 handler 函数,可以选择传递参数。
+         * @param params - The arguments for invoking the callback
+         * @example
+         * ```ts
+         * import { Component } from 'cc';
+         * const eventHandler = new Component.EventHandler();
+         * eventHandler.target = newTarget;
+         * eventHandler.component = "MainMenu";
+         * eventHandler.handler = "OnClick"
+         * eventHandler.emit(["param1", "param2", ....]);
+         * ```
+         */
+        emit(params: any[]): void;
+    }
+    /**
+     * @en
+     * Base class for everything attached to Node(Entity).<br/>
+     * <br/>
+     * NOTE: Not allowed to use construction parameters for Component's subclasses,
+     *       because Component is created by the engine.
+     * @zh
+     * 所有附加到节点的基类。<br/>
+     * <br/>
+     * 注意:不允许使用组件的子类构造参数,因为组件是由引擎创建的。
+     */
+    export class Component extends CCObject {
+        static EventHandler: typeof EventHandler;
+        get name(): string;
+        set name(value: string);
+        /**
+         * @en The uuid for editor.
+         * @zh 组件的 uuid,用于编辑器。
+         * @readOnly
+         * @example
+         * ```ts
+         * import { log } from 'cc';
+         * log(comp.uuid);
+         * ```
+         */
+        get uuid(): string;
+        /**
+         * @deprecated since v3.5.0, this is an engine private interface that will be removed in the future.
+         */
+        get __scriptAsset(): null;
+        /**
+         * @en Indicates whether this component is enabled or not.
+         * @zh 表示该组件自身是否启用。
+         * @default true
+         * @example
+         * ```ts
+         * import { log } from 'cc';
+         * comp.enabled = true;
+         * log(comp.enabled);
+         * ```
+         */
+        get enabled(): boolean;
+        set enabled(value: boolean);
+        /**
+         * @en Indicates whether this component is enabled and its node is also active in the hierarchy.
+         * @zh 表示该组件是否被启用并且所在的节点也处于激活状态。
+         * @readOnly
+         * @example
+         * ```ts
+         * import { log } from 'cc';
+         * log(comp.enabledInHierarchy);
+         * ```
+         */
+        get enabledInHierarchy(): boolean;
+        /**
+         * @en Returns a value which used to indicate the onLoad get called or not.
+         * @zh 返回一个值用来判断 onLoad 是否被调用过,不等于 0 时调用过,等于 0 时未调用。
+         * @readOnly
+         * @example
+         * ```ts
+         * import { log } from 'cc';
+         * log(this._isOnLoadCalled > 0);
+         * ```
+         *
+         * @deprecated since v3.5.0, this is an engine private interface that will be removed in the future.
+         */
+        get _isOnLoadCalled(): number;
+        static system: null;
+        /**
+         * @en The node this component is attached to. A component is always attached to a node.
+         * @zh 该组件被附加到的节点。组件总会附加到一个节点。
+         * @example
+         * ```ts
+         * import { log } from 'cc';
+         * log(comp.node);
+         * ```
+         */
+        node: Node;
+        /**
+         * @deprecated since v3.5.0, this is an engine private interface that will be removed in the future.
+         */
+        _enabled: boolean;
+        /**
+         * @internal
+         */
+        __prefab: Prefab._utils.CompPrefabInfo | null;
+        /**
+         * @internal
+         */
+        _sceneGetter: null | (() => renderer.RenderScene);
+        /**
+         * For internal usage.
+         * @deprecated since v3.5.0, this is an engine private interface that will be removed in the future.
+         */
+        _id: string;
+        /**
+         * @deprecated since v3.5.0, this is an engine private interface that will be removed in the future.
+         */
+        _getRenderScene(): renderer.RenderScene;
+        /**
+         * @en Adds a component class to the node. You can also add component to node by passing in the name of the script.
+         * @zh 向节点添加一个指定类型的组件类,你还可以通过传入脚本的名称来添加组件。
+         * @param classConstructor The class of component to be retrieved or to be created
+         * @example
+         * ```ts
+         * import { Sprite } from 'cc';
+         * const sprite = node.addComponent(Sprite);
+         * ```
+         */
+        addComponent<T extends Component>(classConstructor: __private._types_globals__Constructor<T>): T | null;
+        /**
+         * @en Adds a component class to the node. You can also add component to node by passing in the name of the script.
+         * @zh 向节点添加一个指定类型的组件类,你还可以通过传入脚本的名称来添加组件。
+         * @param className A string for the class name of the component
+         * @example
+         * ```ts
+         * const test = node.addComponent("Test");
+         * ```
+         */
+        addComponent(className: string): Component | null;
+        /**
+         * @en
+         * Returns the component of supplied type if the node has one attached, null if it doesn't.<br/>
+         * You can also get component in the node by passing in the name of the script.
+         * @zh
+         * 获取节点上指定类型的组件,如果节点有附加指定类型的组件,则返回,如果没有则为空。<br/>
+         * 传入参数也可以是脚本的名称。
+         * @param classConstructor The class of component to be retrieved or to be created
+         * @example
+         * ```ts
+         * import { Sprite } from 'cc';
+         * // get sprite component.
+         * var sprite = node.getComponent(Sprite);
+         * ```
+         */
+        getComponent<T extends Component>(classConstructor: __private._types_globals__Constructor<T>): T | null;
+        /**
+         * @en
+         * Returns the component of supplied type if the node has one attached, null if it doesn't.<br/>
+         * You can also get component in the node by passing in the name of the script.
+         * @zh
+         * 获取节点上指定类型的组件,如果节点有附加指定类型的组件,则返回,如果没有则为空。<br/>
+         * 传入参数也可以是脚本的名称。
+         * @param className A string for the class name of the component
+         * @example
+         * ```ts
+         * // get custom test calss.
+         * var test = node.getComponent("Test");
+         * ```
+         */
+        getComponent(className: string): Component | null;
+        /**
+         * @en Returns all components of supplied type in the node.
+         * @zh 返回节点上指定类型的所有组件。
+         * @param classConstructor The class of components to be retrieved
+         * @example
+         * ```ts
+         * import { Sprite } from 'cc';
+         * const sprites = node.getComponents(Sprite);
+         * ```
+         */
+        getComponents<T extends Component>(classConstructor: __private._types_globals__Constructor<T>): T[];
+        /**
+         * @en Returns all components of supplied type in the node.
+         * @zh 返回节点上指定类型的所有组件。
+         * @param className A string for the class name of the components
+         * @example
+         * ```ts
+         * const tests = node.getComponents("Test");
+         * ```
+         */
+        getComponents(className: string): Component[];
+        /**
+         * @en Returns the component of supplied type in any of its children using depth first search.
+         * @zh 递归查找所有子节点中第一个匹配指定类型的组件。
+         * @param classConstructor The class of component to be retrieved
+         * @example
+         * ```ts
+         * import { Sprite } from 'cc';
+         * const sprite = node.getComponentInChildren(Sprite);
+         * ```
+         */
+        getComponentInChildren<T extends Component>(classConstructor: __private._types_globals__Constructor<T>): T | null;
+        /**
+         * @en Returns the component of supplied type in any of its children using depth first search.
+         * @zh 递归查找所有子节点中第一个匹配指定类型的组件。
+         * @param className A string for the class name of the component
+         * @example
+         * ```ts
+         * var Test = node.getComponentInChildren("Test");
+         * ```
+         */
+        getComponentInChildren(className: string): Component | null;
+        /**
+         * @en Returns all components of supplied type in self or any of its children.
+         * @zh 递归查找自身或所有子节点中指定类型的组件。
+         * @param classConstructor The class of components to be retrieved
+         * @example
+         * ```ts
+         * import { Sprite } from 'cc';
+         * const sprites = node.getComponentsInChildren(Sprite);
+         * ```
+         */
+        getComponentsInChildren<T extends Component>(classConstructor: __private._types_globals__Constructor<T>): T[];
+        /**
+         * @en Returns all components of supplied type in self or any of its children.
+         * @zh 递归查找自身或所有子节点中指定类型的组件。
+         * @param className A string for the class name of the components
+         * @example
+         * ```ts
+         * const tests = node.getComponentsInChildren("Test");
+         * ```
+         */
+        getComponentsInChildren(className: string): Component[];
+        destroy(): boolean;
+        /**
+         * @deprecated since v3.5.0, this is an engine private interface that will be removed in the future.
+         */
+        _onPreDestroy(): void;
+        /**
+         * @deprecated since v3.5.0, this is an engine private interface that will be removed in the future.
+         */
+        _instantiate(cloned?: Component): Component | undefined;
+        /**
+         * @en
+         * Use Scheduler system to schedule a custom task.<br/>
+         * If the task is already scheduled, then the interval parameter will be updated without scheduling it again.
+         * @zh
+         * 使用定时器系统调度一个自定义的回调任务。<br/>
+         * 如果回调任务已调度,那么将不会重复调度它,只会更新时间间隔参数。
+         * @param callback  The callback function of the task
+         * @param interval  The time interval between each invocation
+         * @param repeat    The repeat count of this task, the task will be invoked (repeat + 1) times, use [[macro.REPEAT_FOREVER]] to repeat a task forever
+         * @param delay     The delay time for the first invocation, Unit: s
+         * @example
+         * ```ts
+         * import { log } from 'cc';
+         * this.schedule((dt) => void log(`time: ${dt}`), 1);
+         * ```
+         */
+        schedule(callback: any, interval?: number, repeat?: number, delay?: number): void;
+        /**
+         * @en Use Scheduler system to schedule a task that runs only once, with a delay of 0 or larger.
+         * @zh 使用定时器系统调度一个只运行一次的回调任务,可以指定 0 让回调函数在下一帧立即执行或者在一定的延时之后执行。
+         * @method scheduleOnce
+         * @see [[schedule]]
+         * @param callback  The callback function of the task
+         * @param delay  The delay time for the first invocation, Unit: s
+         * @example
+         * ```ts
+         * import { log } from 'cc';
+         * this.scheduleOnce((dt) => void log(`time: ${dt}`), 2);
+         * ```
+         */
+        scheduleOnce(callback: any, delay?: number): void;
+        /**
+         * @en Un-schedules a custom task.
+         * @zh 取消调度一个自定义的回调任务。
+         * @param callback_fn  The callback function of the task
+         * @example
+         * ```ts
+         * this.unschedule(_callback);
+         * ```
+         */
+        unschedule(callback_fn: any): void;
+        /**
+         * @en unschedule all scheduled tasks.
+         * @zh 取消调度所有已调度的回调函数。
+         * @example
+         * ```ts
+         * this.unscheduleAllCallbacks();
+         * ```
+         */
+        unscheduleAllCallbacks(): void;
+        /**
+         * @en Update is called every frame, if the Component is enabled.<br/>
+         * This is a lifecycle method. It may not be implemented in the super class.<br/>
+         * You can only call its super class method inside it. It should not be called manually elsewhere.
+         * @zh 如果该组件启用,则每帧调用 update。<br/>
+         * 该方法为生命周期方法,父类未必会有实现。并且你只能在该方法内部调用父类的实现,不可在其它地方直接调用该方法。
+         * @param dt - the delta time in seconds it took to complete the last frame
+         */
+        protected update?(dt: number): void;
+        /**
+         * @en LateUpdate is called every frame, if the Component is enabled.<br/>
+         * This is a lifecycle method. It may not be implemented in the super class.<br/>
+         * You can only call its super class method inside it. It should not be called manually elsewhere.
+         * @zh 如果该组件启用,则每帧调用 LateUpdate。<br/>
+         * 该方法为生命周期方法,父类未必会有实现。并且你只能在该方法内部调用父类的实现,不可在其它地方直接调用该方法。
+         * @param dt - the delta time in seconds it took to complete the last frame
+         */
+        protected lateUpdate?(dt: number): void;
+        /**
+         * @en `__preload` is called before every onLoad.<br/>
+         * It is used to initialize the builtin components internally,<br/>
+         * to avoid checking whether onLoad is called before every public method calls.<br/>
+         * This method should be removed if script priority is supported.
+         * @zh `__preload` 在每次onLoad之前调用。<br/>
+         * 它用于在内部初始化内置组件,<br/>
+         * 以避免在每次公有方法调用之前检查是否调用了onLoad。<br/>
+         * 如果支持脚本优先级,则应删除此方法。
+         * @private
+         */
+        protected __preload?(): void;
+        /**
+         * @en
+         * When attaching to an active node or its node first activated.<br/>
+         * onLoad is always called before any start functions, this allows you to order initialization of scripts.<br/>
+         * This is a lifecycle method. It may not be implemented in the super class.<br/>
+         * You can only call its super class method inside it. It should not be called manually elsewhere.
+         * @zh
+         * 当附加到一个激活的节点上或者其节点第一次激活时候调用。onLoad 总是会在任何 start 方法调用前执行,这能用于安排脚本的初始化顺序。<br/>
+         * 该方法为生命周期方法,父类未必会有实现。并且你只能在该方法内部调用父类的实现,不可在其它地方直接调用该方法。
+         */
+        protected onLoad?(): void;
+        /**
+         * @en
+         * Called before all scripts' update if the Component is enabled the first time.<br/>
+         * Usually used to initialize some logic which need to be called after all components' `onload` methods called.<br/>
+         * This is a lifecycle method. It may not be implemented in the super class.<br/>
+         * You can only call its super class method inside it. It should not be called manually elsewhere.
+         * @zh
+         * 如果该组件第一次启用,则在所有组件的 update 之前调用。通常用于需要在所有组件的 onLoad 初始化完毕后执行的逻辑。<br/>
+         * 该方法为生命周期方法,父类未必会有实现。并且你只能在该方法内部调用父类的实现,不可在其它地方直接调用该方法。
+         */
+        protected start?(): void;
+        /**
+         * @en Called when this component becomes enabled and its node is active.<br/>
+         * This is a lifecycle method. It may not be implemented in the super class.
+         * You can only call its super class method inside it. It should not be called manually elsewhere.
+         * @zh 当该组件被启用,并且它的节点也激活时。<br/>
+         * 该方法为生命周期方法,父类未必会有实现。并且你只能在该方法内部调用父类的实现,不可在其它地方直接调用该方法。
+         */
+        protected onEnable?(): void;
+        /**
+         * @en Called when this component becomes disabled or its node becomes inactive.<br/>
+         * This is a lifecycle method. It may not be implemented in the super class.
+         * You can only call its super class method inside it. It should not be called manually elsewhere.
+         * @zh 当该组件被禁用或节点变为无效时调用。<br/>
+         * 该方法为生命周期方法,父类未必会有实现。并且你只能在该方法内部调用父类的实现,不可在其它地方直接调用该方法。
+         */
+        protected onDisable?(): void;
+        /**
+         * @en Called when this component will be destroyed.<br/>
+         * This is a lifecycle method. It may not be implemented in the super class.<br/>
+         * You can only call its super class method inside it. It should not be called manually elsewhere.
+         * @zh 当该组件被销毁时调用<br/>
+         * 该方法为生命周期方法,父类未必会有实现。并且你只能在该方法内部调用父类的实现,不可在其它地方直接调用该方法。
+         */
+        protected onDestroy?(): void;
+        onFocusInEditor?(): void;
+        onLostFocusInEditor?(): void;
+        /**
+         * @en Called to initialize the component or node’s properties when adding the component the first time or when the Reset command is used.
+         * This function is only called in editor.<br/>
+         * @zh 用来初始化组件或节点的一些属性,当该组件被第一次添加到节点上或用户点击了它的 Reset 菜单时调用。这个回调只会在编辑器下调用。
+         */
+        resetInEditor?(): void;
+        /**
+         * @en
+         * If the component's bounding box is different from the node's, you can implement this method to supply
+         * a custom axis aligned bounding box (AABB), so the editor's scene view can perform hit test properly.
+         * @zh
+         * 如果组件的包围盒与节点不同,您可以实现该方法以提供自定义的轴向对齐的包围盒(AABB),
+         * 以便编辑器的场景视图可以正确地执行点选测试。
+         * @param out_rect - The rect to store the result bounding rect
+         * @private
+         */
+        protected _getLocalBounds?(out_rect: math.Rect): void;
+        /**
+         * @en
+         * onRestore is called after the user clicks the Reset item in the Inspector's context menu or performs
+         * an undo operation on this component.<br/>
+         * <br/>
+         * If the component contains the "internal state", short for "temporary member variables which not included<br/>
+         * in its CCClass properties", then you may need to implement this function.<br/>
+         * <br/>
+         * The editor will call the getset accessors of your component to record/restore the component's state<br/>
+         * for undo/redo operation. However, in extreme cases, it may not works well. Then you should implement<br/>
+         * this function to manually synchronize your component's "internal states" with its public properties.<br/>
+         * Once you implement this function, all the getset accessors of your component will not be called when<br/>
+         * the user performs an undo/redo operation. Which means that only the properties with default value<br/>
+         * will be recorded or restored by editor.<br/>
+         * <br/>
+         * Similarly, the editor may failed to reset your component correctly in extreme cases. Then if you need<br/>
+         * to support the reset menu, you should manually synchronize your component's "internal states" with its<br/>
+         * properties in this function. Once you implement this function, all the getset accessors of your component<br/>
+         * will not be called during reset operation. Which means that only the properties with default value<br/>
+         * will be reset by editor.
+         *
+         * This function is only called in editor mode.
+         * @zh
+         * onRestore 是用户在检查器菜单点击 Reset 时,对此组件执行撤消操作后调用的。<br/>
+         * <br/>
+         * 如果组件包含了“内部状态”(不在 CCClass 属性中定义的临时成员变量),那么你可能需要实现该方法。<br/>
+         * <br/>
+         * 编辑器执行撤销/重做操作时,将调用组件的 get set 来录制和还原组件的状态。
+         * 然而,在极端的情况下,它可能无法良好运作。<br/>
+         * 那么你就应该实现这个方法,手动根据组件的属性同步“内部状态”。
+         * 一旦你实现这个方法,当用户撤销或重做时,组件的所有 get set 都不会再被调用。
+         * 这意味着仅仅指定了默认值的属性将被编辑器记录和还原。<br/>
+         * <br/>
+         * 同样的,编辑可能无法在极端情况下正确地重置您的组件。<br/>
+         * 于是如果你需要支持组件重置菜单,你需要在该方法中手工同步组件属性到“内部状态”。<br/>
+         * 一旦你实现这个方法,组件的所有 get set 都不会在重置操作时被调用。
+         * 这意味着仅仅指定了默认值的属性将被编辑器重置。
+         * <br/>
+         * 此方法仅在编辑器下会被调用。
+         */
+        protected onRestore?(): void;
+    }
+    /**
      * @en The class used to perform activating and deactivating operations of node and component.
      * @zh 用于执行节点和组件的激活和停用操作的管理器。
      */
     export class NodeActivator {
@@ -22090,570 +24201,8 @@
     export class PrivateNode extends Node {
         constructor(name?: string);
     }
     /**
-     * @en Base class for all functional system managed by [[Director]].
-     * @zh 功能系统的基类,由 [[Director]] 管理。
-     */
-    export class System implements ISchedulable {
-        static Priority: {
-            LOW: number;
-            MEDIUM: number;
-            HIGH: number;
-            SCHEDULER: number;
-        };
-        protected _id: string;
-        protected _priority: number;
-        protected _executeInEditMode: boolean;
-        set priority(value: number);
-        get priority(): number;
-        set id(id: string);
-        get id(): string;
-        /**
-         * @en Sorting between different systems.
-         * @zh 不同系统间排序。
-         * @param a System a
-         * @param b System b
-         */
-        static sortByPriority(a: System, b: System): 1 | -1 | 0;
-        /**
-         * @en Init the system, will be invoked by [[Director]] when registered, should be implemented if needed.
-         * @zh 系统初始化函数,会在注册时被 [[Director]] 调用,如果需要的话应该由子类实现
-         */
-        init(): void;
-        /**
-         * @en Update function of the system, it will be invoked between all components update phase and late update phase.
-         * @zh 系统的帧更新函数,它会在所有组件的 update 和 lateUpdate 之间被调用
-         * @param dt Delta time after the last frame
-         */
-        update(dt: number): void;
-        /**
-         * @en Post update function of the system, it will be invoked after all components late update phase and before the rendering process.
-         * @zh 系统的帧后处理函数,它会在所有组件的 lateUpdate 之后以及渲染之前被调用
-         * @param dt Delta time after the last frame
-         */
-        postUpdate(dt: number): void;
-        destroy(): void;
-    }
-    /**
-     * @en
-     * A temp fallback to contain the original component which can not be loaded.
-     * @zh
-     * 包含无法加载的原始组件的临时回退。
-     */
-    export class MissingScript extends Component {
-        static safeFindClass(id: string): __private._types_globals__Constructor<unknown> | undefined;
-        /**
-         * @deprecated since v3.5.0, this is an engine private interface that will be removed in the future.
-         */
-        _$erialized: null;
-        constructor();
-        onLoad(): void;
-    }
-    /**
-     * @en
-     * The EventHandler class sets the event callback in the scene.
-     * This class allows the user to set the callback target node, target component name, component method name, and call the target method through the `emit` method.
-     * @zh
-     * “EventHandler” 类用来设置场景中的事件回调,该类允许用户设置回调目标节点,目标组件名,组件方法名,并可通过 emit 方法调用目标函数。
-     *
-     * @example
-     * ```ts
-     * // Let's say we have a MainMenu component on newTarget
-     * // file: MainMenu.ts
-     * @ccclass('MainMenu')
-     * export class MainMenu extends Component {
-     *     // sender: the node MainMenu.ts belongs to
-     *     // eventType: CustomEventData
-     *     onClick (sender, eventType) {
-     *         cc.log('click');
-     *     }
-     * }
-     *
-     * import { Component } from 'cc';
-     * const eventHandler = new Component.EventHandler();
-     * eventHandler.target = newTarget;
-     * eventHandler.component = "MainMenu";
-     * eventHandler.handler = "OnClick";
-     * eventHandler.customEventData = "my data";
-     * ```
-     */
-    export class EventHandler {
-        /**
-         * @deprecated since v3.5.0, this is an engine private interface that will be removed in the future.
-         */
-        get _componentName(): any;
-        set _componentName(value: any);
-        /**
-         * @en
-         * Dispatching component events.
-         * @zh
-         * 组件事件派发。
-         *
-         * @param events - The event list to be emitted
-         * @param args - The callback arguments
-         */
-        static emitEvents(events: EventHandler[], ...args: any[]): void;
-        /**
-         * @en
-         * The node that contains target component
-         * @zh
-         * 事件响应组件和函数所在节点
-         */
-        target: Node | null;
-        /**
-         * @en
-         * The name of the component(script) that contains target callback, such as the name 'MainMenu' of the script in the example
-         * @zh
-         * 事件响应函数所在组件名(脚本名), 比如例子中的脚本名 'MainMenu'
-         */
-        component: string;
-        /**
-         * @deprecated since v3.5.0, this is an engine private interface that will be removed in the future.
-         */
-        _componentId: string;
-        /**
-         * @en
-         * Event handler, such as the callback function name 'onClick' in the example
-         * @zh
-         * 响应事件函数名,比如例子中的 'onClick' 方法名
-         */
-        handler: string;
-        /**
-         * @en
-         * Custom Event Data
-         * @zh
-         * 自定义事件数据
-         */
-        customEventData: string;
-        /**
-         * @en Trigger the target callback with given arguments
-         * @zh 触发目标组件上的指定 handler 函数,可以选择传递参数。
-         * @param params - The arguments for invoking the callback
-         * @example
-         * ```ts
-         * import { Component } from 'cc';
-         * const eventHandler = new Component.EventHandler();
-         * eventHandler.target = newTarget;
-         * eventHandler.component = "MainMenu";
-         * eventHandler.handler = "OnClick"
-         * eventHandler.emit(["param1", "param2", ....]);
-         * ```
-         */
-        emit(params: any[]): void;
-    }
-    /**
-     * @en
-     * Base class for everything attached to Node(Entity).<br/>
-     * <br/>
-     * NOTE: Not allowed to use construction parameters for Component's subclasses,
-     *       because Component is created by the engine.
-     * @zh
-     * 所有附加到节点的基类。<br/>
-     * <br/>
-     * 注意:不允许使用组件的子类构造参数,因为组件是由引擎创建的。
-     */
-    export class Component extends CCObject {
-        static EventHandler: typeof EventHandler;
-        get name(): string;
-        set name(value: string);
-        /**
-         * @en The uuid for editor.
-         * @zh 组件的 uuid,用于编辑器。
-         * @readOnly
-         * @example
-         * ```ts
-         * import { log } from 'cc';
-         * log(comp.uuid);
-         * ```
-         */
-        get uuid(): string;
-        /**
-         * @deprecated since v3.5.0, this is an engine private interface that will be removed in the future.
-         */
-        get __scriptAsset(): null;
-        /**
-         * @en Indicates whether this component is enabled or not.
-         * @zh 表示该组件自身是否启用。
-         * @default true
-         * @example
-         * ```ts
-         * import { log } from 'cc';
-         * comp.enabled = true;
-         * log(comp.enabled);
-         * ```
-         */
-        get enabled(): boolean;
-        set enabled(value: boolean);
-        /**
-         * @en Indicates whether this component is enabled and its node is also active in the hierarchy.
-         * @zh 表示该组件是否被启用并且所在的节点也处于激活状态。
-         * @readOnly
-         * @example
-         * ```ts
-         * import { log } from 'cc';
-         * log(comp.enabledInHierarchy);
-         * ```
-         */
-        get enabledInHierarchy(): boolean;
-        /**
-         * @en Returns a value which used to indicate the onLoad get called or not.
-         * @zh 返回一个值用来判断 onLoad 是否被调用过,不等于 0 时调用过,等于 0 时未调用。
-         * @readOnly
-         * @example
-         * ```ts
-         * import { log } from 'cc';
-         * log(this._isOnLoadCalled > 0);
-         * ```
-         *
-         * @deprecated since v3.5.0, this is an engine private interface that will be removed in the future.
-         */
-        get _isOnLoadCalled(): number;
-        static system: null;
-        /**
-         * @en The node this component is attached to. A component is always attached to a node.
-         * @zh 该组件被附加到的节点。组件总会附加到一个节点。
-         * @example
-         * ```ts
-         * import { log } from 'cc';
-         * log(comp.node);
-         * ```
-         */
-        node: Node;
-        /**
-         * @deprecated since v3.5.0, this is an engine private interface that will be removed in the future.
-         */
-        _enabled: boolean;
-        /**
-         * @internal
-         */
-        __prefab: Prefab._utils.CompPrefabInfo | null;
-        /**
-         * @internal
-         */
-        _sceneGetter: null | (() => renderer.RenderScene);
-        /**
-         * For internal usage.
-         * @deprecated since v3.5.0, this is an engine private interface that will be removed in the future.
-         */
-        _id: string;
-        /**
-         * @deprecated since v3.5.0, this is an engine private interface that will be removed in the future.
-         */
-        _getRenderScene(): renderer.RenderScene;
-        /**
-         * @en Adds a component class to the node. You can also add component to node by passing in the name of the script.
-         * @zh 向节点添加一个指定类型的组件类,你还可以通过传入脚本的名称来添加组件。
-         * @param classConstructor The class of component to be retrieved or to be created
-         * @example
-         * ```ts
-         * import { Sprite } from 'cc';
-         * const sprite = node.addComponent(Sprite);
-         * ```
-         */
-        addComponent<T extends Component>(classConstructor: __private._types_globals__Constructor<T>): T | null;
-        /**
-         * @en Adds a component class to the node. You can also add component to node by passing in the name of the script.
-         * @zh 向节点添加一个指定类型的组件类,你还可以通过传入脚本的名称来添加组件。
-         * @param className A string for the class name of the component
-         * @example
-         * ```ts
-         * const test = node.addComponent("Test");
-         * ```
-         */
-        addComponent(className: string): Component | null;
-        /**
-         * @en
-         * Returns the component of supplied type if the node has one attached, null if it doesn't.<br/>
-         * You can also get component in the node by passing in the name of the script.
-         * @zh
-         * 获取节点上指定类型的组件,如果节点有附加指定类型的组件,则返回,如果没有则为空。<br/>
-         * 传入参数也可以是脚本的名称。
-         * @param classConstructor The class of component to be retrieved or to be created
-         * @example
-         * ```ts
-         * import { Sprite } from 'cc';
-         * // get sprite component.
-         * var sprite = node.getComponent(Sprite);
-         * ```
-         */
-        getComponent<T extends Component>(classConstructor: __private._types_globals__Constructor<T>): T | null;
-        /**
-         * @en
-         * Returns the component of supplied type if the node has one attached, null if it doesn't.<br/>
-         * You can also get component in the node by passing in the name of the script.
-         * @zh
-         * 获取节点上指定类型的组件,如果节点有附加指定类型的组件,则返回,如果没有则为空。<br/>
-         * 传入参数也可以是脚本的名称。
-         * @param className A string for the class name of the component
-         * @example
-         * ```ts
-         * // get custom test calss.
-         * var test = node.getComponent("Test");
-         * ```
-         */
-        getComponent(className: string): Component | null;
-        /**
-         * @en Returns all components of supplied type in the node.
-         * @zh 返回节点上指定类型的所有组件。
-         * @param classConstructor The class of components to be retrieved
-         * @example
-         * ```ts
-         * import { Sprite } from 'cc';
-         * const sprites = node.getComponents(Sprite);
-         * ```
-         */
-        getComponents<T extends Component>(classConstructor: __private._types_globals__Constructor<T>): T[];
-        /**
-         * @en Returns all components of supplied type in the node.
-         * @zh 返回节点上指定类型的所有组件。
-         * @param className A string for the class name of the components
-         * @example
-         * ```ts
-         * const tests = node.getComponents("Test");
-         * ```
-         */
-        getComponents(className: string): Component[];
-        /**
-         * @en Returns the component of supplied type in any of its children using depth first search.
-         * @zh 递归查找所有子节点中第一个匹配指定类型的组件。
-         * @param classConstructor The class of component to be retrieved
-         * @example
-         * ```ts
-         * import { Sprite } from 'cc';
-         * const sprite = node.getComponentInChildren(Sprite);
-         * ```
-         */
-        getComponentInChildren<T extends Component>(classConstructor: __private._types_globals__Constructor<T>): T | null;
-        /**
-         * @en Returns the component of supplied type in any of its children using depth first search.
-         * @zh 递归查找所有子节点中第一个匹配指定类型的组件。
-         * @param className A string for the class name of the component
-         * @example
-         * ```ts
-         * var Test = node.getComponentInChildren("Test");
-         * ```
-         */
-        getComponentInChildren(className: string): Component | null;
-        /**
-         * @en Returns all components of supplied type in self or any of its children.
-         * @zh 递归查找自身或所有子节点中指定类型的组件。
-         * @param classConstructor The class of components to be retrieved
-         * @example
-         * ```ts
-         * import { Sprite } from 'cc';
-         * const sprites = node.getComponentsInChildren(Sprite);
-         * ```
-         */
-        getComponentsInChildren<T extends Component>(classConstructor: __private._types_globals__Constructor<T>): T[];
-        /**
-         * @en Returns all components of supplied type in self or any of its children.
-         * @zh 递归查找自身或所有子节点中指定类型的组件。
-         * @param className A string for the class name of the components
-         * @example
-         * ```ts
-         * const tests = node.getComponentsInChildren("Test");
-         * ```
-         */
-        getComponentsInChildren(className: string): Component[];
-        destroy(): boolean;
-        /**
-         * @deprecated since v3.5.0, this is an engine private interface that will be removed in the future.
-         */
-        _onPreDestroy(): void;
-        /**
-         * @deprecated since v3.5.0, this is an engine private interface that will be removed in the future.
-         */
-        _instantiate(cloned?: Component): Component | undefined;
-        /**
-         * @en
-         * Use Scheduler system to schedule a custom task.<br/>
-         * If the task is already scheduled, then the interval parameter will be updated without scheduling it again.
-         * @zh
-         * 使用定时器系统调度一个自定义的回调任务。<br/>
-         * 如果回调任务已调度,那么将不会重复调度它,只会更新时间间隔参数。
-         * @param callback  The callback function of the task
-         * @param interval  The time interval between each invocation
-         * @param repeat    The repeat count of this task, the task will be invoked (repeat + 1) times, use [[macro.REPEAT_FOREVER]] to repeat a task forever
-         * @param delay     The delay time for the first invocation, Unit: s
-         * @example
-         * ```ts
-         * import { log } from 'cc';
-         * this.schedule((dt) => void log(`time: ${dt}`), 1);
-         * ```
-         */
-        schedule(callback: any, interval?: number, repeat?: number, delay?: number): void;
-        /**
-         * @en Use Scheduler system to schedule a task that runs only once, with a delay of 0 or larger.
-         * @zh 使用定时器系统调度一个只运行一次的回调任务,可以指定 0 让回调函数在下一帧立即执行或者在一定的延时之后执行。
-         * @method scheduleOnce
-         * @see [[schedule]]
-         * @param callback  The callback function of the task
-         * @param delay  The delay time for the first invocation, Unit: s
-         * @example
-         * ```ts
-         * import { log } from 'cc';
-         * this.scheduleOnce((dt) => void log(`time: ${dt}`), 2);
-         * ```
-         */
-        scheduleOnce(callback: any, delay?: number): void;
-        /**
-         * @en Un-schedules a custom task.
-         * @zh 取消调度一个自定义的回调任务。
-         * @param callback_fn  The callback function of the task
-         * @example
-         * ```ts
-         * this.unschedule(_callback);
-         * ```
-         */
-        unschedule(callback_fn: any): void;
-        /**
-         * @en unschedule all scheduled tasks.
-         * @zh 取消调度所有已调度的回调函数。
-         * @example
-         * ```ts
-         * this.unscheduleAllCallbacks();
-         * ```
-         */
-        unscheduleAllCallbacks(): void;
-        /**
-         * @en Update is called every frame, if the Component is enabled.<br/>
-         * This is a lifecycle method. It may not be implemented in the super class.<br/>
-         * You can only call its super class method inside it. It should not be called manually elsewhere.
-         * @zh 如果该组件启用,则每帧调用 update。<br/>
-         * 该方法为生命周期方法,父类未必会有实现。并且你只能在该方法内部调用父类的实现,不可在其它地方直接调用该方法。
-         * @param dt - the delta time in seconds it took to complete the last frame
-         */
-        protected update?(dt: number): void;
-        /**
-         * @en LateUpdate is called every frame, if the Component is enabled.<br/>
-         * This is a lifecycle method. It may not be implemented in the super class.<br/>
-         * You can only call its super class method inside it. It should not be called manually elsewhere.
-         * @zh 如果该组件启用,则每帧调用 LateUpdate。<br/>
-         * 该方法为生命周期方法,父类未必会有实现。并且你只能在该方法内部调用父类的实现,不可在其它地方直接调用该方法。
-         * @param dt - the delta time in seconds it took to complete the last frame
-         */
-        protected lateUpdate?(dt: number): void;
-        /**
-         * @en `__preload` is called before every onLoad.<br/>
-         * It is used to initialize the builtin components internally,<br/>
-         * to avoid checking whether onLoad is called before every public method calls.<br/>
-         * This method should be removed if script priority is supported.
-         * @zh `__preload` 在每次onLoad之前调用。<br/>
-         * 它用于在内部初始化内置组件,<br/>
-         * 以避免在每次公有方法调用之前检查是否调用了onLoad。<br/>
-         * 如果支持脚本优先级,则应删除此方法。
-         * @private
-         */
-        protected __preload?(): void;
-        /**
-         * @en
-         * When attaching to an active node or its node first activated.<br/>
-         * onLoad is always called before any start functions, this allows you to order initialization of scripts.<br/>
-         * This is a lifecycle method. It may not be implemented in the super class.<br/>
-         * You can only call its super class method inside it. It should not be called manually elsewhere.
-         * @zh
-         * 当附加到一个激活的节点上或者其节点第一次激活时候调用。onLoad 总是会在任何 start 方法调用前执行,这能用于安排脚本的初始化顺序。<br/>
-         * 该方法为生命周期方法,父类未必会有实现。并且你只能在该方法内部调用父类的实现,不可在其它地方直接调用该方法。
-         */
-        protected onLoad?(): void;
-        /**
-         * @en
-         * Called before all scripts' update if the Component is enabled the first time.<br/>
-         * Usually used to initialize some logic which need to be called after all components' `onload` methods called.<br/>
-         * This is a lifecycle method. It may not be implemented in the super class.<br/>
-         * You can only call its super class method inside it. It should not be called manually elsewhere.
-         * @zh
-         * 如果该组件第一次启用,则在所有组件的 update 之前调用。通常用于需要在所有组件的 onLoad 初始化完毕后执行的逻辑。<br/>
-         * 该方法为生命周期方法,父类未必会有实现。并且你只能在该方法内部调用父类的实现,不可在其它地方直接调用该方法。
-         */
-        protected start?(): void;
-        /**
-         * @en Called when this component becomes enabled and its node is active.<br/>
-         * This is a lifecycle method. It may not be implemented in the super class.
-         * You can only call its super class method inside it. It should not be called manually elsewhere.
-         * @zh 当该组件被启用,并且它的节点也激活时。<br/>
-         * 该方法为生命周期方法,父类未必会有实现。并且你只能在该方法内部调用父类的实现,不可在其它地方直接调用该方法。
-         */
-        protected onEnable?(): void;
-        /**
-         * @en Called when this component becomes disabled or its node becomes inactive.<br/>
-         * This is a lifecycle method. It may not be implemented in the super class.
-         * You can only call its super class method inside it. It should not be called manually elsewhere.
-         * @zh 当该组件被禁用或节点变为无效时调用。<br/>
-         * 该方法为生命周期方法,父类未必会有实现。并且你只能在该方法内部调用父类的实现,不可在其它地方直接调用该方法。
-         */
-        protected onDisable?(): void;
-        /**
-         * @en Called when this component will be destroyed.<br/>
-         * This is a lifecycle method. It may not be implemented in the super class.<br/>
-         * You can only call its super class method inside it. It should not be called manually elsewhere.
-         * @zh 当该组件被销毁时调用<br/>
-         * 该方法为生命周期方法,父类未必会有实现。并且你只能在该方法内部调用父类的实现,不可在其它地方直接调用该方法。
-         */
-        protected onDestroy?(): void;
-        onFocusInEditor?(): void;
-        onLostFocusInEditor?(): void;
-        /**
-         * @en Called to initialize the component or node’s properties when adding the component the first time or when the Reset command is used.
-         * This function is only called in editor.<br/>
-         * @zh 用来初始化组件或节点的一些属性,当该组件被第一次添加到节点上或用户点击了它的 Reset 菜单时调用。这个回调只会在编辑器下调用。
-         */
-        resetInEditor?(): void;
-        /**
-         * @en
-         * If the component's bounding box is different from the node's, you can implement this method to supply
-         * a custom axis aligned bounding box (AABB), so the editor's scene view can perform hit test properly.
-         * @zh
-         * 如果组件的包围盒与节点不同,您可以实现该方法以提供自定义的轴向对齐的包围盒(AABB),
-         * 以便编辑器的场景视图可以正确地执行点选测试。
-         * @param out_rect - The rect to store the result bounding rect
-         * @private
-         */
-        protected _getLocalBounds?(out_rect: math.Rect): void;
-        /**
-         * @en
-         * onRestore is called after the user clicks the Reset item in the Inspector's context menu or performs
-         * an undo operation on this component.<br/>
-         * <br/>
-         * If the component contains the "internal state", short for "temporary member variables which not included<br/>
-         * in its CCClass properties", then you may need to implement this function.<br/>
-         * <br/>
-         * The editor will call the getset accessors of your component to record/restore the component's state<br/>
-         * for undo/redo operation. However, in extreme cases, it may not works well. Then you should implement<br/>
-         * this function to manually synchronize your component's "internal states" with its public properties.<br/>
-         * Once you implement this function, all the getset accessors of your component will not be called when<br/>
-         * the user performs an undo/redo operation. Which means that only the properties with default value<br/>
-         * will be recorded or restored by editor.<br/>
-         * <br/>
-         * Similarly, the editor may failed to reset your component correctly in extreme cases. Then if you need<br/>
-         * to support the reset menu, you should manually synchronize your component's "internal states" with its<br/>
-         * properties in this function. Once you implement this function, all the getset accessors of your component<br/>
-         * will not be called during reset operation. Which means that only the properties with default value<br/>
-         * will be reset by editor.
-         *
-         * This function is only called in editor mode.
-         * @zh
-         * onRestore 是用户在检查器菜单点击 Reset 时,对此组件执行撤消操作后调用的。<br/>
-         * <br/>
-         * 如果组件包含了“内部状态”(不在 CCClass 属性中定义的临时成员变量),那么你可能需要实现该方法。<br/>
-         * <br/>
-         * 编辑器执行撤销/重做操作时,将调用组件的 get set 来录制和还原组件的状态。
-         * 然而,在极端的情况下,它可能无法良好运作。<br/>
-         * 那么你就应该实现这个方法,手动根据组件的属性同步“内部状态”。
-         * 一旦你实现这个方法,当用户撤销或重做时,组件的所有 get set 都不会再被调用。
-         * 这意味着仅仅指定了默认值的属性将被编辑器记录和还原。<br/>
-         * <br/>
-         * 同样的,编辑可能无法在极端情况下正确地重置您的组件。<br/>
-         * 于是如果你需要支持组件重置菜单,你需要在该方法中手工同步组件属性到“内部状态”。<br/>
-         * 一旦你实现这个方法,组件的所有 get set 都不会在重置操作时被调用。
-         * 这意味着仅仅指定了默认值的属性将被编辑器重置。
-         * <br/>
-         * 此方法仅在编辑器下会被调用。
-         */
-        protected onRestore?(): void;
-    }
-    /**
      * @en The Camera Component.
      * @zh 相机组件。
      */
     export class Camera extends Component {
@@ -22723,9 +24272,9 @@
         /**
          * @en The render camera representation.
          * @zh 渲染场景中的相机对象。
          */
-        get camera(): renderer.scene.Camera;
+        get camera(): renderer.scene.Camera | null;
         /**
          * @en Render priority of the camera. Cameras with higher depth are rendered after cameras with lower depth.
          * @zh 相机的渲染优先级,值越小越优先渲染。
          */
@@ -22896,14 +24445,14 @@
         protected _checkTargetTextureEvent(old: RenderTexture | null): void;
         protected _updateTargetTexture(): void;
     }
     export namespace Camera {
-        export type ProjectionType = __private._types_globals__EnumAlias<typeof __private._cocos_core_components_camera_component__ProjectionType>;
-        export type FOVAxis = __private._types_globals__EnumAlias<typeof __private._cocos_core_components_camera_component__FOVAxis>;
-        export type ClearFlag = __private._types_globals__EnumAlias<typeof __private._cocos_core_components_camera_component__ClearFlag>;
-        export type Aperture = __private._types_globals__EnumAlias<typeof __private._cocos_core_components_camera_component__Aperture>;
-        export type Shutter = __private._types_globals__EnumAlias<typeof __private._cocos_core_components_camera_component__Shutter>;
-        export type ISO = __private._types_globals__EnumAlias<typeof __private._cocos_core_components_camera_component__ISO>;
+        export type ProjectionType = __private._types_globals__EnumAlias<typeof __private._cocos_misc_camera_component__ProjectionType>;
+        export type FOVAxis = __private._types_globals__EnumAlias<typeof __private._cocos_misc_camera_component__FOVAxis>;
+        export type ClearFlag = __private._types_globals__EnumAlias<typeof __private._cocos_misc_camera_component__ClearFlag>;
+        export type Aperture = __private._types_globals__EnumAlias<typeof __private._cocos_misc_camera_component__Aperture>;
+        export type Shutter = __private._types_globals__EnumAlias<typeof __private._cocos_misc_camera_component__Shutter>;
+        export type ISO = __private._types_globals__EnumAlias<typeof __private._cocos_misc_camera_component__ISO>;
     }
     /**
      * @en Base class for all rendering components containing model.
      * @zh 所有包含 model 的渲染组件基类。
@@ -23011,1570 +24560,21 @@
         protected _clearMaterials(): void;
     }
     /**
      * @en
-     * Real curve.
-     *
-     * The real curve is a kind of keyframe curve.
-     * When evaluating a real curve:
-     * - If the input is just the time of a keyframe,
-     *   keyframe value's numeric value is used as result.
-     * - Otherwise, if the input is less than the time of the first keyframe or
-     *   is greater than the time of the last keyframe time, it performs so-called extrapolation.
-     * - Otherwise, the input falls between two keyframes and then it interpolates between the two keyframes.
-     *
-     * Every keyframe may specify an interpolation mode
-     * to indicates how to perform the interpolation
-     * from current keyframe to next keyframe.
-     * Interpolation modes of keyframes may differ from each other.
-     *
-     * Real curve allows three interpolation modes: constant, linear and cubic.
-     * The constant and linear mode is easy.
-     * In case of cubic interpolation,
-     * the interpolation algorithm is effectively equivalent to cubic bezier(or cubic hermite) interpolation.
-     *
-     * Related quantities related to cubic interpolation are:
-     * - Keyframe times and numeric values.
-     * - The tangent and tangent weight of the previous keyframe and next keyframe.
-     *
-     * While performing the cubic bezier interpolation,
-     * The first control point is calculated from right tangent and right tangent weight of previous keyframe,
-     * the second control point is calculated from left tangent and left tangent weight of next keyframe.
-     *
-     * In equivalent bezier representation,
-     * the tangent is the line slope between sample point and control point
-     * and the tangent weight is the distance between sample point and control point.
-     * The tangent weight on either side can be marked as "not specified" through tangent weight mode.
-     * If either side weight is not specified,
-     * the tangent weight is treated at `sqrt(d_t^2 + (d_t * tangent)^2) * (1 / 3)`
-     * where `d_t` is the difference between two keyframes 's time and `tangent` is the tangent of that side.
-     *
-     * Note, in some cases, tangent/tangent weight/tangent weight mode may be "meaningless".
-     * The meaningless means that value can may not be stored(or serialized).
+     * A temp fallback to contain the original component which can not be loaded.
      * @zh
-     * 实数曲线。
-     *
-     * 实数曲线是关键帧曲线的一种。
-     * 在求值实数曲线时:
-     * - 若输入正好就是关键帧上的时间,关键帧上的数值就作为结果。
-     * - 否则,如果输入小于第一个关键帧上的时间或大于最后一个关键帧上的时间,它会进行所谓的外推。
-     * - 否则,输入落于两帧之间,将通过插值两帧得到结果。
-     *
-     * 每个关键帧都可以指定插值模式,
-     * 以表示从当前帧数值变化到下一帧数值所采用的插值算法,
-     * 每个关键帧的插值模式都可以是各不相同的。
-     *
-     * 实数曲线允许三种插值模式:常量、线性和三次方的(也称立方)。
-     * 常量和线性模式都比较简单。
-     * 在三次插值的情况下,插值算法实质上等价于三次贝塞尔(或三次埃尔米特)插值。
-     *
-     * 三次插值的相关量有:
-     * - 关键帧上的时间和数值;
-     * - 前一关键帧和后一关键帧上的切线和切线权重。
-     *
-     * 当两帧之间进行三次贝塞尔曲线插值时,
-     * 会取前一帧的右切线、右切线权重来计算出第一个控制点,
-     * 会取后一帧的左切线、左切线权重来计算出第二个控制点。
-     *
-     * 在等效的贝塞尔表示中,
-     * 切线就是样本点和控制点之间的切线斜率,而切线权重就是样本点和控制点之间的距离。
-     * 任意一端的切线权重都可以通过切线权重模式来标记为“未指定的”。
-     * 若任意一端的切线权重是未指定的,
-     * 此端上的切线权重将被视为 `sqrt(d_t^2 + (d_t * tangent)^2) * (1 / 3)`,其中,
-     * `d_t` 是两帧时间的差,`tangent` 是此端上的切线。
-     *
-     * 注意,切线/切线权重/切线权重模式在某些情况下可能是“无意义的”。
-     * 无意义意味着这些值可能不会被存储或序列化。
+     * 包含无法加载的原始组件的临时回退。
      */
-    export class RealCurve extends __private._cocos_core_curves_keyframe_curve__KeyframeCurve<RealKeyframeValue> {
+    export class MissingScript extends Component {
+        static safeFindClass(id: string): __private._types_globals__Constructor<unknown> | undefined;
         /**
-         * @en
-         * Gets or sets the pre-extrapolation-mode of this curve.
-         * Defaults to `ExtrapolationMode.CLAMP`.
-         * @zh
-         * 获取或设置此曲线的前向外推模式。
-         * 默认为 `ExtrapolationMode.CLAMP`。
-         */
-        preExtrapolation: ExtrapolationMode;
-        /**
-         * @en
-         * Gets or sets the post-extrapolation-mode of this curve.
-         * Defaults to `ExtrapolationMode.CLAMP`.
-         * @zh
-         * 获取或设置此曲线的后向外推模式。
-         * 默认为 `ExtrapolationMode.CLAMP`。
-         */
-        postExtrapolation: ExtrapolationMode;
-        /**
-         * @en
-         * Evaluates this curve at specified time.
-         * @zh
-         * 计算此曲线在指定时间上的值。
-         * @param time Input time.
-         * @returns Result value.
-         */
-        evaluate(time: number): number;
-        /**
-         * @en
-         * Adds a keyframe into this curve.
-         * @zh
-         * 添加一个关键帧到此曲线。
-         * @param time Time of the keyframe.
-         * @param value Value of the keyframe.
-         * @returns The index to the new keyframe.
-         */
-        addKeyFrame(time: number, value: __private._cocos_core_curves_curve__RealKeyframeValueParameters): number;
-        /**
-         * @en
-         * Assigns all keyframes.
-         * @zh
-         * 赋值所有关键帧。
-         * @param keyframes An iterable to keyframes. The keyframes should be sorted by their time.
-         */
-        assignSorted(keyframes: Iterable<[
-            number,
-            __private._cocos_core_curves_curve__RealKeyframeValueParameters
-        ]>): void;
-        /**
-         * Assigns all keyframes.
-         * @param times Times array. Should be sorted.
-         * @param values Values array. Corresponding to each time in `times`.
-         */
-        assignSorted(times: readonly number[], values: __private._cocos_core_curves_curve__RealKeyframeValueParameters[]): void;
-        /**
-         * @en
-         * Returns if this curve is constant.
-         * @zh
-         * 返回此曲线是否是常量曲线。
-         * @param tolerance The tolerance.
-         * @returns Whether it is constant.
-         */
-        isConstant(tolerance: number): boolean;
-        /**
-         * @internal
-         */
-        [serializeTag](output: SerializationOutput, context: SerializationContext): void;
-        /**
-         * @internal
-         */
-        [deserializeTag](input: SerializationInput, context: __private._cocos_core_data_custom_serializable__DeserializationContext): void;
-    }
-    /**
-     * @en
-     * The method used for interpolation method between value of a keyframe and its next keyframe.
-     * @zh
-     * 在某关键帧(前一帧)和其下一帧之间插值时使用的插值方式。
-     */
-    export enum RealInterpolationMode {
-        /**
-         * @en
-         * Perform linear interpolation between previous keyframe value and next keyframe value.
-         * @zh
-         * 在前一帧和后一帧之间执行线性插值。
-         */
-        LINEAR = 0,
-        /**
-         * @en
-         * Always use the value from this keyframe.
-         * @zh
-         * 永远使用前一帧的值。
-         */
-        CONSTANT = 1,
-        /**
-         * @en
-         * Perform cubic(hermite) interpolation between previous keyframe value and next keyframe value.
-         * @zh
-         * 在前一帧和后一帧之间执行立方插值。
-         */
-        CUBIC = 2
-    }
-    /**
-     * @en
-     * Specifies how to extrapolate the value
-     * if input time is underflow(less than the the first frame time) or
-     * overflow(greater than the last frame time) when evaluating an curve.
-     * @zh
-     * 在求值曲线时,指定当输入时间下溢(小于第一帧的时间)或上溢(大于最后一帧的时间)时应该如何推断结果值。
-     */
-    export enum ExtrapolationMode {
-        /**
-         * @en
-         * Compute the result
-         * according to the first two frame's linear trend in the case of underflow and
-         * according to the last two frame's linear trend in the case of overflow.
-         * If there are less than two frames, fallback to `CLAMP`.
-         * @zh
-         * 下溢时,根据前两帧的线性趋势计算结果;上溢时,根据最后两帧的线性趋势计算结果。
-         * 如果曲线帧数小于 2,回退到  `CLAMP`。
-         */
-        LINEAR = 0,
-        /**
-         * @en
-         * Use first frame's value in the case of underflow,
-         * use last frame's value in the case of overflow.
-         * @zh
-         * 下溢时,使用第一帧的值;上溢时,使用最后一帧的值。
-         */
-        CLAMP = 1,
-        /**
-         * @en
-         * Computes the result as if the curve is infinitely and continuously looped.
-         * @zh
-         * 求值时将该曲线视作是无限连续循环的。
-         */
-        LOOP = 2,
-        /**
-         * @en
-         * Computes the result as if the curve is infinitely and continuously looped in a ping-pong manner.
-         * @zh
-         * 求值时将该曲线视作是以“乒乓”的形式无限连续循环的。
-         */
-        PING_PONG = 3
-    }
-    /**
-     * @en
-     * Specifies both side tangent weight mode of a keyframe value.
-     * @zh
-     * 指定关键帧两侧的切线权重模式。
-     */
-    export enum TangentWeightMode {
-        /**
-         * @en
-         * Neither side of the keyframe carries tangent weight information.
-         * @zh
-         * 关键帧的两侧都不携带切线权重信息。
-         */
-        NONE = 0,
-        /**
-         * @en
-         * Only left side of the keyframe carries tangent weight information.
-         * @zh
-         * 仅关键帧的左侧携带切线权重信息。
-         */
-        LEFT = 1,
-        /**
-         * @en
-         * Only right side of the keyframe carries tangent weight information.
-         * @zh
-         * 仅关键帧的右侧携带切线权重信息。
-         */
-        RIGHT = 2,
-        /**
-         * @en
-         * Both sides of the keyframe carries tangent weight information.
-         * @zh
-         * 关键帧的两侧都携带切线权重信息。
-         */
-        BOTH = 3
-    }
-    /**
-     * @en View to a real frame value.
-     * Note, the view may be invalidated due to keyframe change/add/remove.
-     * @zh 实数帧值的视图。
-     * 注意,该视图可能因关键帧的添加、改变、移除而失效。
-     */
-    export class RealKeyframeValue extends __private._cocos_core_data_editor_extendable__EditorExtendable {
-        /**
-         * @en
-         * When perform interpolation, the interpolation method should be taken
-         * when for this keyframe is used as starting keyframe.
-         * @zh
-         * 在执行插值时,当以此关键帧作为起始关键帧时应当使用的插值方式。
-         */
-        get interpolationMode(): RealInterpolationMode;
-        set interpolationMode(value: RealInterpolationMode);
-        /**
-         * @en
-         * Tangent weight mode when perform cubic interpolation
-         * This field is regarded if current interpolation mode is not cubic.
-         * @zh
-         * 当执行三次插值时,此关键帧使用的切线权重模式。
-         * 若当前的插值模式不是三次插值时,该字段无意义。
-         */
-        get tangentWeightMode(): TangentWeightMode;
-        set tangentWeightMode(value: TangentWeightMode);
-        /**
-         * @en
-         * Value of the keyframe.
-         * @zh
-         * 该关键帧的值。
-         */
-        value: number;
-        /**
-         * @en
-         * The tangent of this keyframe
-         * when it's used as starting point during cubic interpolation.
-         * Regarded otherwise.
-         * @zh
-         * 当此关键帧作为三次插值的起始点时,此关键帧的切线。其他情况下该字段无意义。
-         */
-        rightTangent: number;
-        /**
-         * @en
-         * The tangent weight of this keyframe
-         * when it's used as starting point during weighted cubic interpolation.
-         * Regarded otherwise.
-         * @zh
-         * 当此关键帧作为三次插值的起始点时,此关键帧的切线权重。其他情况下该字段无意义。
-         */
-        rightTangentWeight: number;
-        /**
-         * @en
-         * The tangent of this keyframe
-         * when it's used as ending point during cubic interpolation.
-         * Regarded otherwise.
-         * @zh
-         * 当此关键帧作为三次插值的目标点时,此关键帧的切线。其他情况下该字段无意义。
-         */
-        leftTangent: number;
-        /**
-         * @en
-         * The tangent weight of this keyframe
-         * when it's used as ending point during weighted cubic interpolation.
-         * Regarded otherwise.
-         * @zh
-         * 当此关键帧作为三次插值的目标点时,此关键帧的切线权重。其他情况下该字段无意义。
-         */
-        leftTangentWeight: number;
-        /**
-         * @deprecated Reserved for backward compatibility. Will be removed in future.
-         */
-        get easingMethod(): __private._cocos_core_curves_easing_method__EasingMethod;
-        set easingMethod(value: __private._cocos_core_curves_easing_method__EasingMethod);
-    }
-    /**
-     * @en
-     * Quaternion curve.
-     * @zh
-     * 四元数曲线
-     */
-    export class QuatCurve extends __private._cocos_core_curves_keyframe_curve__KeyframeCurve<QuatKeyframeValue> {
-        /**
-         * @en
-         * Gets or sets the pre-extrapolation-mode of this curve.
-         * Defaults to `ExtrapolationMode.CLAMP`.
-         * @zh
-         * 获取或设置此曲线的前向外推模式。
-         * 默认为 `ExtrapolationMode.CLAMP`。
-         */
-        preExtrapolation: ExtrapolationMode;
-        /**
-         * @en
-         * Gets or sets the post-extrapolation-mode of this curve.
-         * Defaults to `ExtrapolationMode.CLAMP`.
-         * @zh
-         * 获取或设置此曲线的后向外推模式。
-         * 默认为 `ExtrapolationMode.CLAMP`。
-         */
-        postExtrapolation: ExtrapolationMode;
-        /**
-         * @en
-         * Evaluates this curve at specified time.
-         * @zh
-         * 计算此曲线在指定时间上的值。
-         * @param time Input time.
-         * @param quat If specified, this value will be filled and returned.
-         * Otherwise a new quaternion object will be filled and returned.
-         * @returns Result value.
-         */
-        evaluate(time: number, quat?: math.Quat): math.Quat;
-        /**
-         * Adds a keyframe into this curve.
-         * @param time Time of the keyframe.
-         * @param value Value of the keyframe.
-         * @returns The index to the new keyframe.
-         */
-        addKeyFrame(time: number, value: __private._cocos_core_curves_quat_curve__QuatKeyframeValueParameters): number;
-        /**
-         * Assigns all keyframes.
-         * @param keyframes An iterable to keyframes. The keyframes should be sorted by their time.
-         */
-        assignSorted(keyframes: Iterable<[
-            number,
-            __private._cocos_core_curves_quat_curve__QuatKeyframeValueParameters
-        ]>): void;
-        /**
-         * Assigns all keyframes.
-         * @param times Times array. Should be sorted.
-         * @param values Values array. Corresponding to each time in `times`.
-         */
-        assignSorted(times: readonly number[], values: __private._cocos_core_curves_quat_curve__QuatKeyframeValueParameters[]): void;
-        /**
-         * @internal
-         */
-        [serializeTag](output: SerializationOutput, context: SerializationContext): void;
-        /**
-         * @internal
-         */
-        [deserializeTag](input: SerializationInput, context: __private._cocos_core_data_custom_serializable__DeserializationContext): void;
-    }
-    /**
-     * @en
-     * The method used for interpolation between values of a quaternion keyframe and its next keyframe.
-     * @zh
-     * 在某四元数关键帧(前一帧)和其下一帧之间插值时使用的插值方式。
-     */
-    export enum QuatInterpolationMode {
-        /**
-         * @en
-         * Perform spherical linear interpolation between previous keyframe value and next keyframe value.
-         * @zh
-         * 在前一帧和后一帧之间执行球面线性插值。
-         */
-        SLERP = 0,
-        /**
-         * @en
-         * Always use the value from this keyframe.
-         * @zh
-         * 永远使用前一帧的值。
-         */
-        CONSTANT = 1
-    }
-    /**
-     * View to a quaternion frame value.
-     * Note, the view may be invalidated due to keyframe change/add/remove.
-     */
-    export class QuatKeyframeValue {
-        /**
-         * @en
-         * When perform interpolation, the interpolation method should be taken
-         * when for this keyframe is used as starting keyframe.
-         * @zh
-         * 在执行插值时,当以此关键帧作为起始关键帧时应当使用的插值方式。
-         */
-        interpolationMode: QuatInterpolationMode;
-        /**
-         * @en
-         * Value of the keyframe.
-         * @zh
-         * 该关键帧的值。
-         */
-        value: math.IQuatLike;
-        /**
-         * @internal Reserved for backward compatibility. Will be removed in future.
-         */
-        easingMethod: __private._cocos_core_curves_easing_method__EasingMethod | [
-            number,
-            number,
-            number,
-            number
-        ];
-        constructor({ value, interpolationMode, easingMethod, }?: Partial<QuatKeyframeValue>);
-    }
-    export class ObjectCurve<T> extends __private._cocos_core_curves_keyframe_curve__KeyframeCurve<ObjectCurveKeyframe<T>> {
-        evaluate(time: number): T;
-    }
-    export type ObjectCurveKeyframe<T> = T;
-    /**
-     * @zh
-     * 配置模块用于获取 settings.json 配置文件中的配置信息,同时你可以覆盖一些配置从而影响引擎的启动和运行,可参考 [game.init] 的参数选项说明。你可以通过 [settings] 访问此模块单例。
-     * @en
-     * The Settings module is used to get the configuration information in the settings.json configuration file,
-     * and you can override some of the configuration to affect the launch and running of the engine, as described in the [game.init] parameter options.
-     * You can access this single instance of the module via [settings].
-     */
-    export class Settings {
-        static Category: typeof __private._cocos_core_settings__Category;
-        /**
-         * Initialization
-         * @internal
-         */
-        init(path?: string, overrides?: Record<string, any>): Promise<void>;
-        /**
-         * @zh
-         * 覆盖一部分配置数据。
-         *
-         * @en
-         * Override some configuration info in Settings module.
-         *
-         * @param category @en The category you want to override. @zh 想要覆盖的分组。
-         * @param name @en The name of the configuration in the category you want to override. @zh 分组中想要覆盖的具体配置名称。
-         * @param value @en The value of the configuration you want to override. @zh 想要覆盖的具体值。
-         *
-         * @example
-         * ```ts
-         * console.log(settings.querySettings(Settings.Category.ASSETS, 'server')); // print https://www.cocos.com
-         * settings.overrideSettings(Settings.Category.ASSETS, 'server', 'http://www.test.com');
-         * console.log(settings.querySettings(Settings.Category.ASSETS, 'server')); // print http://www.test.com
-         * ```
-         */
-        overrideSettings<T = any>(category: __private._cocos_core_settings__Category | string, name: string, value: T): void;
-        /**
-         * @zh
-         * 查询配置模块中具体分组中的具体配置值。
-         *
-         * @en
-         * Query specific configuration values in specific category in the settings module.
-         *
-         * @param category @en The name of category to query. @zh 想要查询的分组名称。
-         * @param name @en The name of configuration in category to query. @zh 分组中想要查询的具体的配置名称。
-         * @returns @en The value of configuration to query. @zh 想要查询的具体配置值。
-         *
-         * @example
-         * ```ts
-         * console.log(settings.querySettings(Settings.Category.ENGINE, 'debug')); // print false
-         * ```
-         */
-        querySettings<T = any>(category: __private._cocos_core_settings__Category | string, name: string): T | null;
-    }
-    export namespace Settings {
-        export type Category = typeof __private._cocos_core_settings__Category;
-    }
-    /**
-     * @zh
-     * Settings 模块单例,你能通过此单例访问 settings.json 中的配置数据。
-     * @en
-     * Settings module singleton, through this you can access the configuration data in settings.json.
-     */
-    export const settings: Settings;
-    export function bezier(C1: number, C2: number, C3: number, C4: number, t: number): number;
-    export function bezierByTime(controlPoints: BezierControlPoints, x: number): number;
-    export type BezierControlPoints = [
-        number,
-        number,
-        number,
-        number
-    ];
-    export function createDefaultPipeline(): ForwardPipeline;
-    export namespace pipeline {
-        export enum SetIndex {
-            GLOBAL = 0,
-            MATERIAL = 1,
-            LOCAL = 2
-        }
-        /**
-         * @en The predefined render priorities
-         * @zh 预设的渲染优先级。
-         */
-        export enum RenderPriority {
-            MIN = 0,
-            MAX = 255,
-            DEFAULT = 128
-        }
-        /**
-         * @internal This method only used to init localDescriptorSetLayout.layouts[UBOSkinning.NAME]
-         */
-        export function localDescriptorSetLayout_ResizeMaxJoints(maxCount: number): void;
-        /**
-         * @en Does the device support single-channeled half float texture? (for both color attachment and sampling)
-         * @zh 当前设备是否支持单通道半浮点贴图?(颜色输出和采样)
-         */
-        export function supportsR16HalfFloatTexture(device: gfx.Device): boolean;
-        /**
-         * @en Does the device support single-channeled float texture? (for both color attachment and sampling)
-         * @zh 当前设备是否支持单通道浮点贴图?(颜色输出和采样)
-         */
-        export function supportsR32FloatTexture(device: gfx.Device): boolean;
-        export const PIPELINE_FLOW_MAIN = "MainFlow";
-        export const PIPELINE_FLOW_FORWARD = "ForwardFlow";
-        export const PIPELINE_FLOW_SHADOW = "ShadowFlow";
-        export const PIPELINE_FLOW_SMAA = "SMAAFlow";
-        export const PIPELINE_FLOW_TONEMAP = "ToneMapFlow";
-        /**
-         * @en The predefined render pass stage ids
-         * @zh 预设的渲染阶段。
-         */
-        export enum RenderPassStage {
-            DEFAULT = 100,
-            UI = 200
-        }
-        /**
-         * @en Render object interface
-         * @zh 渲染对象接口。
-         */
-        export interface IRenderObject {
-            model: renderer.scene.Model;
-            depth: number;
-        }
-        export interface IRenderPass {
-            priority: number;
-            hash: number;
-            depth: number;
-            shaderId: number;
-            subModel: renderer.scene.SubModel;
-            passIdx: number;
-        }
-        /**
-         * @en Render batch interface
-         * @zh 渲染批次接口。
-         */
-        export interface IRenderBatch {
-            pass: renderer.Pass;
-        }
-        /**
-         * @en Render queue descriptor
-         * @zh 渲染队列描述。
-         */
-        export interface IRenderQueueDesc {
-            isTransparent: boolean;
-            phases: number;
-            sortFunc: (a: IRenderPass, b: IRenderPass) => number;
-        }
-        export interface IDescriptorSetLayoutInfo {
-            bindings: gfx.DescriptorSetLayoutBinding[];
-            layouts: Record<string, gfx.UniformBlock | gfx.UniformSamplerTexture | gfx.UniformStorageImage | gfx.UniformStorageBuffer>;
-        }
-        export const globalDescriptorSetLayout: IDescriptorSetLayoutInfo;
-        export const localDescriptorSetLayout: IDescriptorSetLayoutInfo;
-        /**
-         * @en The uniform bindings
-         * @zh Uniform 参数绑定。
-         */
-        export enum PipelineGlobalBindings {
-            UBO_GLOBAL = 0,
-            UBO_CAMERA = 1,
-            UBO_SHADOW = 2,
-            UBO_CSM = 3,
-            SAMPLER_SHADOWMAP = 4,
-            SAMPLER_ENVIRONMENT = 5,
-            SAMPLER_SPOT_SHADOW_MAP = 6,
-            SAMPLER_DIFFUSEMAP = 7,
-            COUNT = 8
-        }
-        export enum ModelLocalBindings {
-            UBO_LOCAL = 0,
-            UBO_FORWARD_LIGHTS = 1,
-            UBO_SKINNING_ANIMATION = 2,
-            UBO_SKINNING_TEXTURE = 3,
-            UBO_MORPH = 4,
-            UBO_UI_LOCAL = 5,
-            SAMPLER_JOINTS = 6,
-            SAMPLER_MORPH_POSITION = 7,
-            SAMPLER_MORPH_NORMAL = 8,
-            SAMPLER_MORPH_TANGENT = 9,
-            SAMPLER_LIGHTMAP = 10,
-            SAMPLER_SPRITE = 11,
-            SAMPLER_REFLECTION = 12,
-            STORAGE_REFLECTION = 13,
-            COUNT = 14
-        }
-        export const bindingMappingInfo: gfx.BindingMappingInfo;
-        /**
-         * @en The global uniform buffer object
-         * @zh 全局 UBO。
-         */
-        export class UBOGlobal {
-            static readonly TIME_OFFSET = 0;
-            static readonly SCREEN_SIZE_OFFSET: number;
-            static readonly NATIVE_SIZE_OFFSET: number;
-            static readonly DEBUG_VIEW_MODE_OFFSET: number;
-            static readonly DEBUG_VIEW_COMPOSITE_PACK_1_OFFSET: number;
-            static readonly DEBUG_VIEW_COMPOSITE_PACK_2_OFFSET: number;
-            static readonly DEBUG_VIEW_COMPOSITE_PACK_3_OFFSET: number;
-            static readonly COUNT: number;
-            static readonly SIZE: number;
-            static readonly NAME = "CCGlobal";
-            static readonly BINDING = PipelineGlobalBindings.UBO_GLOBAL;
-            static readonly DESCRIPTOR: gfx.DescriptorSetLayoutBinding;
-            static readonly LAYOUT: gfx.UniformBlock;
-        }
-        /**
-         * @en The global camera uniform buffer object
-         * @zh 全局相机 UBO。
-         */
-        export class UBOCamera {
-            static readonly MAT_VIEW_OFFSET = 0;
-            static readonly MAT_VIEW_INV_OFFSET: number;
-            static readonly MAT_PROJ_OFFSET: number;
-            static readonly MAT_PROJ_INV_OFFSET: number;
-            static readonly MAT_VIEW_PROJ_OFFSET: number;
-            static readonly MAT_VIEW_PROJ_INV_OFFSET: number;
-            static readonly CAMERA_POS_OFFSET: number;
-            static readonly SURFACE_TRANSFORM_OFFSET: number;
-            static readonly SCREEN_SCALE_OFFSET: number;
-            static readonly EXPOSURE_OFFSET: number;
-            static readonly MAIN_LIT_DIR_OFFSET: number;
-            static readonly MAIN_LIT_COLOR_OFFSET: number;
-            static readonly AMBIENT_SKY_OFFSET: number;
-            static readonly AMBIENT_GROUND_OFFSET: number;
-            static readonly GLOBAL_FOG_COLOR_OFFSET: number;
-            static readonly GLOBAL_FOG_BASE_OFFSET: number;
-            static readonly GLOBAL_FOG_ADD_OFFSET: number;
-            static readonly NEAR_FAR_OFFSET: number;
-            static readonly VIEW_PORT_OFFSET: number;
-            static readonly COUNT: number;
-            static readonly SIZE: number;
-            static readonly NAME = "CCCamera";
-            static readonly BINDING = PipelineGlobalBindings.UBO_CAMERA;
-            static readonly DESCRIPTOR: gfx.DescriptorSetLayoutBinding;
-            static readonly LAYOUT: gfx.UniformBlock;
-        }
-        /**
-         * @en The uniform buffer object for 'cast shadow(fixed || csm)' && 'dir fixed area shadow' && 'spot shadow' && 'sphere shadow' && 'planar shadow'
-         * @zh 这个 UBO 仅仅只给 'cast shadow(fixed || csm)' && 'dir fixed area shadow' && 'spot shadow' && 'sphere shadow' && 'planar shadow' 使用
-         */
-        export class UBOShadow {
-            static readonly MAT_LIGHT_VIEW_OFFSET = 0;
-            static readonly MAT_LIGHT_VIEW_PROJ_OFFSET: number;
-            static readonly SHADOW_INV_PROJ_DEPTH_INFO_OFFSET: number;
-            static readonly SHADOW_PROJ_DEPTH_INFO_OFFSET: number;
-            static readonly SHADOW_PROJ_INFO_OFFSET: number;
-            static readonly SHADOW_NEAR_FAR_LINEAR_SATURATION_INFO_OFFSET: number;
-            static readonly SHADOW_WIDTH_HEIGHT_PCF_BIAS_INFO_OFFSET: number;
-            static readonly SHADOW_LIGHT_PACKING_NBIAS_NULL_INFO_OFFSET: number;
-            static readonly SHADOW_COLOR_OFFSET: number;
-            static readonly PLANAR_NORMAL_DISTANCE_INFO_OFFSET: number;
-            static readonly COUNT: number;
-            static readonly SIZE: number;
-            static readonly NAME = "CCShadow";
-            static readonly BINDING = PipelineGlobalBindings.UBO_SHADOW;
-            static readonly DESCRIPTOR: gfx.DescriptorSetLayoutBinding;
-            static readonly LAYOUT: gfx.UniformBlock;
-        }
-        /**
-         * @en The uniform buffer object only for dir csm shadow(level: 1 ~ 4)
-         * @zh 级联阴影使用的UBO
-         */
-        export class UBOCSM {
-            static readonly CSM_LEVEL_COUNT = 4;
-            static readonly CSM_VIEW_DIR_0_OFFSET = 0;
-            static readonly CSM_VIEW_DIR_1_OFFSET: number;
-            static readonly CSM_VIEW_DIR_2_OFFSET: number;
-            static readonly CSM_ATLAS_OFFSET: number;
-            static readonly MAT_CSM_VIEW_PROJ_OFFSET: number;
-            static readonly CSM_PROJ_DEPTH_INFO_OFFSET: number;
-            static readonly CSM_PROJ_INFO_OFFSET: number;
-            static readonly CSM_SPLITS_INFO_OFFSET: number;
-            static readonly COUNT: number;
-            static readonly SIZE: number;
-            static readonly NAME = "CCCSM";
-            static readonly BINDING = PipelineGlobalBindings.UBO_CSM;
-            static readonly DESCRIPTOR: gfx.DescriptorSetLayoutBinding;
-            static readonly LAYOUT: gfx.UniformBlock;
-        }
-        export const UNIFORM_SHADOWMAP_BINDING = PipelineGlobalBindings.SAMPLER_SHADOWMAP;
-        export const UNIFORM_ENVIRONMENT_BINDING = PipelineGlobalBindings.SAMPLER_ENVIRONMENT;
-        export const UNIFORM_DIFFUSEMAP_BINDING = PipelineGlobalBindings.SAMPLER_DIFFUSEMAP;
-        export const UNIFORM_SPOT_SHADOW_MAP_TEXTURE_BINDING = PipelineGlobalBindings.SAMPLER_SPOT_SHADOW_MAP;
-        /**
-         * @en The local uniform buffer object
-         * @zh 本地 UBO。
-         */
-        export class UBOLocal {
-            static readonly MAT_WORLD_OFFSET = 0;
-            static readonly MAT_WORLD_IT_OFFSET: number;
-            static readonly LIGHTINGMAP_UVPARAM: number;
-            static readonly LOCAL_SHADOW_BIAS: number;
-            static readonly COUNT: number;
-            static readonly SIZE: number;
-            static readonly NAME = "CCLocal";
-            static readonly BINDING = ModelLocalBindings.UBO_LOCAL;
-            static readonly DESCRIPTOR: gfx.DescriptorSetLayoutBinding;
-            static readonly LAYOUT: gfx.UniformBlock;
-        }
-        /**
-         * @en The world bound uniform buffer object
-         * @zh 世界空间包围盒 UBO。
-         */
-        export class UBOWorldBound {
-            static readonly WORLD_BOUND_CENTER = 0;
-            static readonly WORLD_BOUND_HALF_EXTENTS: number;
-            static readonly COUNT: number;
-            static readonly SIZE: number;
-            static readonly NAME = "CCWorldBound";
-            static readonly BINDING = ModelLocalBindings.UBO_LOCAL;
-            static readonly DESCRIPTOR: gfx.DescriptorSetLayoutBinding;
-            static readonly LAYOUT: gfx.UniformBlock;
-        }
-        export const INST_MAT_WORLD = "a_matWorld0";
-        export class UBOLocalBatched {
-            static readonly BATCHING_COUNT = 10;
-            static readonly MAT_WORLDS_OFFSET = 0;
-            static readonly COUNT: number;
-            static readonly SIZE: number;
-            static readonly NAME = "CCLocalBatched";
-            static readonly BINDING = ModelLocalBindings.UBO_LOCAL;
-            static readonly DESCRIPTOR: gfx.DescriptorSetLayoutBinding;
-            static readonly LAYOUT: gfx.UniformBlock;
-        }
-        /**
-         * @en The uniform buffer object for forward lighting
-         * @zh 前向灯光 UBO。
-         */
-        export class UBOForwardLight {
-            static readonly LIGHTS_PER_PASS = 1;
-            static readonly LIGHT_POS_OFFSET = 0;
-            static readonly LIGHT_COLOR_OFFSET: number;
-            static readonly LIGHT_SIZE_RANGE_ANGLE_OFFSET: number;
-            static readonly LIGHT_DIR_OFFSET: number;
-            static readonly COUNT: number;
-            static readonly SIZE: number;
-            static readonly NAME = "CCForwardLight";
-            static readonly BINDING = ModelLocalBindings.UBO_FORWARD_LIGHTS;
-            static readonly DESCRIPTOR: gfx.DescriptorSetLayoutBinding;
-            static readonly LAYOUT: gfx.UniformBlock;
-        }
-        export class UBODeferredLight {
-            static readonly LIGHTS_PER_PASS = 10;
-        }
-        export const JOINT_UNIFORM_CAPACITY = 30;
-        /**
-         * @en The uniform buffer object for skinning texture
-         * @zh 骨骼贴图 UBO。
-         */
-        export class UBOSkinningTexture {
-            static readonly JOINTS_TEXTURE_INFO_OFFSET = 0;
-            static readonly COUNT: number;
-            static readonly SIZE: number;
-            static readonly NAME = "CCSkinningTexture";
-            static readonly BINDING = ModelLocalBindings.UBO_SKINNING_TEXTURE;
-            static readonly DESCRIPTOR: gfx.DescriptorSetLayoutBinding;
-            static readonly LAYOUT: gfx.UniformBlock;
-        }
-        export class UBOSkinningAnimation {
-            static readonly JOINTS_ANIM_INFO_OFFSET = 0;
-            static readonly COUNT: number;
-            static readonly SIZE: number;
-            static readonly NAME = "CCSkinningAnimation";
-            static readonly BINDING = ModelLocalBindings.UBO_SKINNING_ANIMATION;
-            static readonly DESCRIPTOR: gfx.DescriptorSetLayoutBinding;
-            static readonly LAYOUT: gfx.UniformBlock;
-        }
-        export const INST_JOINT_ANIM_INFO = "a_jointAnimInfo";
-        export class UBOSkinning {
-            static get JOINT_UNIFORM_CAPACITY(): number;
-            static get COUNT(): number;
-            static get SIZE(): number;
-            static readonly NAME = "CCSkinning";
-            static readonly BINDING = ModelLocalBindings.UBO_SKINNING_TEXTURE;
-            static readonly DESCRIPTOR: gfx.DescriptorSetLayoutBinding;
-            static readonly LAYOUT: gfx.UniformBlock;
-            /**
-             * @internal This method only used init UBOSkinning configure.
-             */
-            static initLayout(capacity: number): void;
-        }
-        /**
-         * @en The uniform buffer object for morph setting
-         * @zh 形变配置的 UBO
-         */
-        export class UBOMorph {
-            static readonly MAX_MORPH_TARGET_COUNT = 60;
-            static readonly OFFSET_OF_WEIGHTS = 0;
-            static readonly OFFSET_OF_DISPLACEMENT_TEXTURE_WIDTH: number;
-            static readonly OFFSET_OF_DISPLACEMENT_TEXTURE_HEIGHT: number;
-            static readonly OFFSET_OF_VERTICES_COUNT: number;
-            static readonly COUNT_BASE_4_BYTES: number;
-            static readonly SIZE: number;
-            static readonly NAME = "CCMorph";
-            static readonly BINDING = ModelLocalBindings.UBO_MORPH;
-            static readonly DESCRIPTOR: gfx.DescriptorSetLayoutBinding;
-            static readonly LAYOUT: gfx.UniformBlock;
-        }
-        export class UBOUILocal {
-            static readonly NAME = "CCUILocal";
-            static readonly BINDING = ModelLocalBindings.UBO_UI_LOCAL;
-            static readonly DESCRIPTOR: gfx.DescriptorSetLayoutBinding;
-            static readonly LAYOUT: gfx.UniformBlock;
-        }
-        export const UNIFORM_JOINT_TEXTURE_BINDING = ModelLocalBindings.SAMPLER_JOINTS;
-        export const UNIFORM_REALTIME_JOINT_TEXTURE_BINDING = ModelLocalBindings.SAMPLER_JOINTS;
-        export const UNIFORM_POSITION_MORPH_TEXTURE_BINDING = ModelLocalBindings.SAMPLER_MORPH_POSITION;
-        export const UNIFORM_NORMAL_MORPH_TEXTURE_BINDING = ModelLocalBindings.SAMPLER_MORPH_NORMAL;
-        export const UNIFORM_TANGENT_MORPH_TEXTURE_BINDING = ModelLocalBindings.SAMPLER_MORPH_TANGENT;
-        export const UNIFORM_LIGHTMAP_TEXTURE_BINDING = ModelLocalBindings.SAMPLER_LIGHTMAP;
-        export const UNIFORM_SPRITE_TEXTURE_BINDING = ModelLocalBindings.SAMPLER_SPRITE;
-        export const UNIFORM_REFLECTION_TEXTURE_BINDING = ModelLocalBindings.SAMPLER_REFLECTION;
-        export const UNIFORM_REFLECTION_STORAGE_BINDING = ModelLocalBindings.STORAGE_REFLECTION;
-        export const CAMERA_DEFAULT_MASK: number;
-        export const CAMERA_EDITOR_MASK: number;
-        export const MODEL_ALWAYS_MASK: number;
-    }
-    /**
-     * @en Render pipeline describes how we handle the rendering process for all render objects in the related render scene root.
-     * It contains some general pipeline configurations, necessary rendering resources and some [[RenderFlow]]s.
-     * The rendering process function [[render]] is invoked by [[Root]] for all [[Camera]]s.
-     * @zh 渲染管线对象决定了引擎对相关渲染场景下的所有渲染对象实施的完整渲染流程。
-     * 这个类主要包含一些通用的管线配置,必要的渲染资源和一些 [[RenderFlow]]。
-     * 渲染流程函数 [[render]] 会由 [[Root]] 发起调用并对所有 [[Camera]] 执行预设的渲染流程。
-     */
-    export abstract class RenderPipeline extends Asset implements __private._cocos_rendering_pipeline_event__IPipelineEvent, __private._cocos_rendering_custom_pipeline__PipelineRuntime {
-        /**
-         * @en The tag of pipeline.
-         * @zh 管线的标签。
-         * @readonly
-         */
-        get tag(): number;
-        /**
-         * @en The flows of pipeline.
-         * @zh 管线的渲染流程列表。
-         * @readonly
-         */
-        get flows(): RenderFlow[];
-        /**
-         * @en Tag
-         * @zh 标签
-         * @readonly
-         */
-        protected _tag: number;
-        /**
-         * @en Flows
-         * @zh 渲染流程列表
-         * @readonly
-         */
-        protected _flows: RenderFlow[];
-        protected _quadIB: gfx.Buffer | null;
-        protected _quadVBOnscreen: gfx.Buffer | null;
-        protected _quadVBOffscreen: gfx.Buffer | null;
-        protected _quadIAOnscreen: gfx.InputAssembler | null;
-        protected _quadIAOffscreen: gfx.InputAssembler | null;
-        protected _eventProcessor: PipelineEventProcessor;
-        /**
-         * @zh
-         * 四边形输入汇集器。
-         */
-        get quadIAOnscreen(): gfx.InputAssembler;
-        get quadIAOffscreen(): gfx.InputAssembler;
-        getPipelineRenderData(): __private._cocos_rendering_render_pipeline__PipelineRenderData;
-        /**
-         * @en
-         * Constant macro string, static throughout the whole runtime.
-         * Used to pass device-specific parameters to shader.
-         * @zh 常量宏定义字符串,运行时全程不会改变,用于给 shader 传一些只和平台相关的参数。
-         * @readonly
-         */
-        get constantMacros(): string;
-        /**
-         * @en
-         * The current global-scoped shader macros.
-         * Used to control effects like IBL, fog, etc.
-         * @zh 当前的全局宏定义,用于控制如 IBL、雾效等模块。
-         * @readonly
-         */
-        get macros(): renderer.MacroRecord;
-        get device(): gfx.Device;
-        get globalDSManager(): __private._cocos_rendering_global_descriptor_set_manager__GlobalDSManager;
-        get descriptorSetLayout(): gfx.DescriptorSetLayout;
-        get descriptorSet(): gfx.DescriptorSet;
-        get commandBuffers(): gfx.CommandBuffer[];
-        get pipelineUBO(): __private._cocos_rendering_pipeline_ubo__PipelineUBO;
-        get pipelineSceneData(): PipelineSceneData;
-        set profiler(value: renderer.scene.Model | null);
-        get profiler(): renderer.scene.Model | null;
-        /**
-         * @deprecated since v3.6, please use camera.geometryRenderer instead.
-         */
-        get geometryRenderer(): GeometryRenderer | null;
-        set clusterEnabled(value: boolean);
-        get clusterEnabled(): boolean;
-        set bloomEnabled(value: boolean);
-        get bloomEnabled(): boolean;
-        protected _device: gfx.Device;
-        protected _globalDSManager: __private._cocos_rendering_global_descriptor_set_manager__GlobalDSManager;
-        protected _descriptorSet: gfx.DescriptorSet;
-        protected _commandBuffers: gfx.CommandBuffer[];
-        protected _pipelineUBO: __private._cocos_rendering_pipeline_ubo__PipelineUBO;
-        protected _macros: renderer.MacroRecord;
-        protected _constantMacros: string;
-        protected _profiler: renderer.scene.Model | null;
-        protected _geometryRenderer: GeometryRenderer | null;
-        protected _pipelineSceneData: PipelineSceneData;
-        protected _pipelineRenderData: __private._cocos_rendering_render_pipeline__PipelineRenderData | null;
-        protected _renderPasses: Map<gfx.ClearFlagBit, gfx.RenderPass>;
-        protected _width: number;
-        protected _height: number;
-        protected _lastUsedRenderArea: gfx.Rect;
-        protected _clusterEnabled: boolean;
-        protected _bloomEnabled: boolean;
-        /**
-         * @en The initialization process, user shouldn't use it in most case, only useful when need to generate render pipeline programmatically.
-         * @zh 初始化函数,正常情况下不会用到,仅用于程序化生成渲染管线的情况。
-         * @param info The render pipeline information
-         */
-        initialize(info: __private._cocos_rendering_render_pipeline__IRenderPipelineInfo): boolean;
-        createRenderPass(clearFlags: gfx.ClearFlags, colorFmt: gfx.Format, depthFmt: gfx.Format): gfx.RenderPass;
-        getRenderPass(clearFlags: gfx.ClearFlags, fbo: gfx.Framebuffer): gfx.RenderPass;
-        applyFramebufferRatio(framebuffer: gfx.Framebuffer): void;
-        /**
-         * @en generate renderArea by camera
-         * @zh 生成renderArea
-         * @param camera the camera
-         * @returns
-         */
-        generateRenderArea(camera: renderer.scene.Camera, out: gfx.Rect): void;
-        generateViewport(camera: renderer.scene.Camera, out?: gfx.Viewport): gfx.Viewport;
-        generateScissor(camera: renderer.scene.Camera, out?: gfx.Rect): gfx.Rect;
-        get shadingScale(): number;
-        set shadingScale(val: number);
-        getMacroString(name: string): string;
-        getMacroInt(name: string): number;
-        getMacroBool(name: string): boolean;
-        setMacroString(name: string, value: string): void;
-        setMacroInt(name: string, value: number): void;
-        setMacroBool(name: string, value: boolean): void;
-        /**
-         * @en Activate the render pipeline after loaded, it mainly activate the flows
-         * @zh 当渲染管线资源加载完成后,启用管线,主要是启用管线内的 flow
-         * TODO: remove swapchain dependency at this stage
-         * after deferred pipeline can handle multiple swapchains
-         */
-        activate(swapchain: gfx.Swapchain): boolean;
-        protected _ensureEnoughSize(cameras: renderer.scene.Camera[]): void;
-        /**
-         * @en Render function, it basically run the render process of all flows in sequence for the given view.
-         * @zh 渲染函数,对指定的渲染视图按顺序执行所有渲染流程。
-         * @param view Render view。
-         */
-        render(cameras: renderer.scene.Camera[]): void;
-        /**
-         * @zh
-         * 销毁四边形输入汇集器。
-         */
-        protected _destroyQuadInputAssembler(): void;
-        protected _destroyBloomData(): void;
-        /**
-         * @zh
-         * 创建四边形输入汇集器。
-         */
-        protected _createQuadInputAssembler(): __private._cocos_rendering_render_pipeline__PipelineInputAssemblerData;
-        updateQuadVertexData(renderArea: gfx.Rect, window: __private._cocos_render_scene_core_render_window__RenderWindow): void;
-        /**
-         * @en Internal destroy function
-         * @zh 内部销毁函数。
-         */
-        destroy(): boolean;
-        onGlobalPipelineStateChanged(): void;
-        protected _generateConstantMacros(): void;
-        protected updateGeometryRenderer(cameras: renderer.scene.Camera[]): void;
-        generateBloomRenderData(): void;
-        /**
-         * @en
-         * Register an callback of the pipeline event type on the RenderPipeline.
-         * @zh
-         * 在渲染管线中注册管线事件类型的回调。
-         */
-        on(type: PipelineEventType, callback: any, target?: any, once?: boolean): typeof callback;
-        /**
-         * @en
-         * Register an callback of the pipeline event type on the RenderPipeline,
-         * the callback will remove itself after the first time it is triggered.
-         * @zh
-         * 在渲染管线中注册管线事件类型的回调, 回调后会在第一时间删除自身。
-         */
-        once(type: PipelineEventType, callback: any, target?: any): typeof callback;
-        /**
-         * @en
-         * Removes the listeners previously registered with the same type, callback, target and or useCapture,
-         * if only type is passed as parameter, all listeners registered with that type will be removed.
-         * @zh
-         * 删除之前用同类型、回调、目标或 useCapture 注册的事件监听器,如果只传递 type,将会删除 type 类型的所有事件监听器。
-         */
-        off(type: PipelineEventType, callback?: any, target?: any): void;
-        /**
-         * @zh 派发一个指定事件,并传递需要的参数
-         * @en Trigger an event directly with the event name and necessary arguments.
-         * @param type - event type
-         * @param args - Arguments when the event triggered
-         */
-        emit(type: PipelineEventType, arg0?: any, arg1?: any, arg2?: any, arg3?: any, arg4?: any): void;
-        /**
-         * @en Removes all callbacks previously registered with the same target (passed as parameter).
-         * This is not for removing all listeners in the current event target,
-         * and this is not for removing all listeners the target parameter have registered.
-         * It's only for removing all listeners (callback and target couple) registered on the current event target by the target parameter.
-         * @zh 在当前 EventTarget 上删除指定目标(target 参数)注册的所有事件监听器。
-         * 这个函数无法删除当前 EventTarget 的所有事件监听器,也无法删除 target 参数所注册的所有事件监听器。
-         * 这个函数只能删除 target 参数在当前 EventTarget 上注册的所有事件监听器。
-         * @param typeOrTarget - The target to be searched for all related listeners
-         */
-        targetOff(typeOrTarget: any): void;
-        /**
-         * @zh 移除在特定事件类型中注册的所有回调或在某个目标中注册的所有回调。
-         * @en Removes all callbacks registered in a certain event type or all callbacks registered with a certain target
-         * @param typeOrTarget - The event type or target with which the listeners will be removed
-         */
-        removeAll(typeOrTarget: any): void;
-        /**
-         * @zh 检查指定事件是否已注册回调。
-         * @en Checks whether there is correspond event listener registered on the given event.
-         * @param type - Event type.
-         * @param callback - Callback function when event triggered.
-         * @param target - Callback callee.
-         */
-        hasEventListener(type: PipelineEventType, callback?: any, target?: any): boolean;
-    }
-    /**
-     * @en Render flow is a sub process of the [[RenderPipeline]], it dispatch the render task to all the [[RenderStage]]s.
-     * @zh 渲染流程是渲染管线([[RenderPipeline]])的一个子过程,它将渲染任务派发到它的所有渲染阶段([[RenderStage]])中执行。
-     */
-    export abstract class RenderFlow {
-        /**
-         * @en The name of the render flow
-         * @zh 渲染流程的名字
-         */
-        get name(): string;
-        /**
-         * @en Priority of the current flow
-         * @zh 当前渲染流程的优先级。
-         */
-        get priority(): number;
-        /**
-         * @en Tag of the current flow
-         * @zh 当前渲染流程的标签。
-         */
-        get tag(): number;
-        /**
-         * @en The stages of flow.
-         * @zh 渲染流程 stage 列表。
-         * @readonly
-         */
-        get stages(): RenderStage[];
-        protected _name: string;
-        protected _priority: number;
-        protected _tag: number;
-        protected _stages: RenderStage[];
-        protected _pipeline: RenderPipeline;
-        /**
-         * @en Get pipeline
-         * @zh 获取pipeline
-         */
-        get pipeline(): RenderPipeline;
-        /**
-         * @en The initialization process, user shouldn't use it in most case, only useful when need to generate render pipeline programmatically.
-         * @zh 初始化函数,正常情况下不会用到,仅用于程序化生成渲染管线的情况。
-         * @param info The render flow information
-         */
-        initialize(info: __private._cocos_rendering_render_flow__IRenderFlowInfo): boolean;
-        /**
-         * @en Activate the current render flow in the given pipeline
-         * @zh 为指定的渲染管线开启当前渲染流程
-         * @param pipeline The render pipeline to activate this render flow
-         */
-        activate(pipeline: RenderPipeline): void;
-        /**
-         * @en Render function, it basically run all render stages in sequence for the given view.
-         * @zh 渲染函数,对指定的渲染视图按顺序执行所有渲染阶段。
-         * @param view Render view。
-         */
-        render(camera: renderer.scene.Camera): void;
-        /**
-         * @en Destroy function.
-         * @zh 销毁函数。
-         */
-        destroy(): void;
-    }
-    /**
-     * @en The render stage actually renders render objects to the output window or other GFX [[gfx.Framebuffer]].
-     * Typically, a render stage collects render objects it's responsible for, clear the camera,
-     * record and execute command buffer, and at last present the render result.
-     * @zh 渲染阶段是实质上的渲染执行者,它负责收集渲染数据并执行渲染将渲染结果输出到屏幕或其他 GFX [[gfx.Framebuffer]] 中。
-     * 典型的渲染阶段会收集它所管理的渲染对象,按照 [[Camera]] 的清除标记进行清屏,记录并执行渲染指令缓存,并最终呈现渲染结果。
-     */
-    export abstract class RenderStage {
-        /**
-         * @en Name of the current stage
-         * @zh 当前渲染阶段的名字。
-         */
-        get name(): string;
-        /**
-         * @en Priority of the current stage
-         * @zh 当前渲染阶段的优先级。
-         */
-        get priority(): number;
-        /**
-         * @en Tag of the current stage
-         * @zh 当前渲染阶段的标签。
-         */
-        get tag(): number;
-        /**
-         * @en Name
-         * @zh 名称。
-         */
-        protected _name: string;
-        /**
-         * @en Priority
-         * @zh 优先级。
-         */
-        protected _priority: number;
-        /**
-         * @en Whether to enable
-         * @zh 是否启用。
-         */
-        protected _enabled: boolean;
-        set enabled(val: boolean);
-        get enabled(): boolean;
-        /**
-         * @en Type
-         * @zh 类型。
-         */
-        protected _tag: number;
-        protected _pipeline: RenderPipeline;
-        protected _flow: RenderFlow;
-        /**
-         * @en The initialization process, user shouldn't use it in most case, only useful when need to generate render pipeline programmatically.
-         * @zh 初始化函数,正常情况下不会用到,仅用于程序化生成渲染管线的情况。
-         * @param info The render stage information
-         */
-        initialize(info: __private._cocos_rendering_render_stage__IRenderStageInfo): boolean;
-        /**
-         * @en Activate the current render stage in the given render flow
-         * @zh 为指定的渲染流程开启当前渲染阶段
-         * @param flow The render flow to activate this render stage
-         */
-        activate(pipeline: RenderPipeline, flow: RenderFlow): void;
-        /**
-         * @en Destroy function
-         * @zh 销毁函数。
-         */
-        abstract destroy(): any;
-        /**
-         * @en Render function
-         * @zh 渲染函数。
-         * @param view The render view
-         */
-        abstract render(camera: renderer.scene.Camera): any;
-    }
-    export class PipelineSceneData {
-        /**
-         * @en Is open HDR.
-         * @zh 是否开启 HDR。
-         * @readonly
-         */
-        get isHDR(): boolean;
-        set isHDR(val: boolean);
-        get shadingScale(): number;
-        set shadingScale(val: number);
-        get csmSupported(): boolean;
-        set csmSupported(val: boolean);
-        fog: renderer.scene.Fog;
-        ambient: renderer.scene.Ambient;
-        skybox: renderer.scene.Skybox;
-        shadows: renderer.scene.Shadows;
-        csmLayers: __private._cocos_rendering_shadow_csm_layers__CSMLayers;
-        octree: renderer.scene.Octree;
-        /**
-         * @en The list for valid punctual Lights, only available after the scene culling of the current frame.
-         * @zh 场景中精确的有效光源,仅在当前帧的场景剔除完成后有效。
-         */
-        validPunctualLights: renderer.scene.Light[];
-        /**
-         * @en The list for render objects, only available after the scene culling of the current frame.
-         * @zh 渲染对象数组,仅在当前帧的场景剔除完成后有效。
-         */
-        renderObjects: pipeline.IRenderObject[];
-        shadowFrameBufferMap: Map<renderer.scene.Light, gfx.Framebuffer>;
-        protected _device: gfx.Device;
-        protected _geometryRendererMaterials: Material[];
-        protected _geometryRendererPasses: renderer.Pass[];
-        protected _geometryRendererShaders: gfx.Shader[];
-        protected _occlusionQueryVertexBuffer: gfx.Buffer | null;
-        protected _occlusionQueryIndicesBuffer: gfx.Buffer | null;
-        protected _occlusionQueryInputAssembler: gfx.InputAssembler | null;
-        protected _occlusionQueryMaterial: Material | null;
-        protected _occlusionQueryShader: gfx.Shader | null;
-        protected _isHDR: boolean;
-        protected _shadingScale: number;
-        protected _csmSupported: boolean;
-        constructor();
-        activate(device: gfx.Device): boolean;
-        initGeometryRendererMaterials(): void;
-        get geometryRendererPasses(): renderer.Pass[];
-        get geometryRendererShaders(): gfx.Shader[];
-        initOcclusionQuery(): void;
-        getOcclusionQueryPass(): renderer.Pass | null;
-        updatePipelineSceneData(): void;
-        destroy(): void;
-    }
-    /**
-     * @en The forward render pipeline
-     * @zh 前向渲染管线。
-     */
-    export class ForwardPipeline extends RenderPipeline {
-        protected renderTextures: __private._cocos_rendering_pipeline_serialization__RenderTextureConfig[];
-        protected _postRenderPass: gfx.RenderPass | null;
-        get postRenderPass(): gfx.RenderPass | null;
-        initialize(info: __private._cocos_rendering_render_pipeline__IRenderPipelineInfo): boolean;
-        activate(swapchain: gfx.Swapchain): boolean;
-        protected _ensureEnoughSize(cameras: renderer.scene.Camera[]): void;
-        destroy(): boolean;
-    }
-    /**
-     * @en The forward flow in forward render pipeline
-     * @zh 前向渲染流程。
-     */
-    export class ForwardFlow extends RenderFlow {
-        /**
-         * @en The shared initialization information of forward render flow
-         * @zh 共享的前向渲染流程初始化参数
-         */
-        static initInfo: __private._cocos_rendering_render_flow__IRenderFlowInfo;
-        initialize(info: __private._cocos_rendering_render_flow__IRenderFlowInfo): boolean;
-        activate(pipeline: RenderPipeline): void;
-        render(camera: renderer.scene.Camera): void;
-        destroy(): void;
-    }
-    /**
-     * @en The forward render stage
-     * @zh 前向渲染阶段。
-     */
-    export class ForwardStage extends RenderStage {
-        static initInfo: __private._cocos_rendering_render_stage__IRenderStageInfo;
-        protected renderQueues: __private._cocos_rendering_pipeline_serialization__RenderQueueDesc[];
-        protected _renderQueues: __private._cocos_rendering_render_queue__RenderQueue[];
-        additiveInstanceQueues: __private._cocos_rendering_render_instanced_queue__RenderInstancedQueue[];
-        constructor();
-        initialize(info: __private._cocos_rendering_render_stage__IRenderStageInfo): boolean;
-        activate(pipeline: ForwardPipeline, flow: ForwardFlow): void;
-        destroy(): void;
-        render(camera: renderer.scene.Camera): void;
-    }
-    /**
-     * @en The deferred render pipeline
-     * @zh 延迟渲染管线。
-     */
-    export class DeferredPipeline extends RenderPipeline {
-        protected renderTextures: __private._cocos_rendering_pipeline_serialization__RenderTextureConfig[];
-        initialize(info: __private._cocos_rendering_render_pipeline__IRenderPipelineInfo): boolean;
-        activate(swapchain: gfx.Swapchain): boolean;
-        destroy(): boolean;
-        onGlobalPipelineStateChanged(): void;
-        getPipelineRenderData(): __private._cocos_rendering_deferred_deferred_pipeline__DeferredRenderData;
-        protected _ensureEnoughSize(cameras: renderer.scene.Camera[]): void;
-    }
-    /**
-     * @en The main flow in deferred render pipeline
-     * @zh 延迟渲染流程。
-     */
-    export class MainFlow extends RenderFlow {
-        /**
-         * @en The shared initialization information of main render flow
-         * @zh 共享的延迟渲染流程初始化参数
-         */
-        static initInfo: __private._cocos_rendering_render_flow__IRenderFlowInfo;
-        initialize(info: __private._cocos_rendering_render_flow__IRenderFlowInfo): boolean;
-        activate(pipeline: RenderPipeline): void;
-        render(camera: renderer.scene.Camera): void;
-        destroy(): void;
-    }
-    /**
-     * @en The gbuffer render stage
-     * @zh 前向渲染阶段。
-     */
-    export class GbufferStage extends RenderStage {
-        static initInfo: __private._cocos_rendering_render_stage__IRenderStageInfo;
-        protected renderQueues: __private._cocos_rendering_pipeline_serialization__RenderQueueDesc[];
-        protected _renderQueues: __private._cocos_rendering_render_queue__RenderQueue[];
-        constructor();
-        initialize(info: __private._cocos_rendering_render_stage__IRenderStageInfo): boolean;
-        activate(pipeline: DeferredPipeline, flow: MainFlow): void;
-        destroy(): void;
-        render(camera: renderer.scene.Camera): void;
-    }
-    /**
-     * @en The lighting render stage
-     * @zh 前向渲染阶段。
-     */
-    export class LightingStage extends RenderStage {
-        static initInfo: __private._cocos_rendering_render_stage__IRenderStageInfo;
-        constructor();
-        initialize(info: __private._cocos_rendering_render_stage__IRenderStageInfo): boolean;
-        gatherLights(camera: renderer.scene.Camera): void;
-        protected _createStageDescriptor(pass: renderer.Pass): void;
-        activate(pipeline: DeferredPipeline, flow: MainFlow): void;
-        destroy(): void;
-        render(camera: renderer.scene.Camera): void;
-    }
-    /**
-     * @en The bloom post-process stage
-     * @zh Bloom 后处理阶段。
-     */
-    export class BloomStage extends RenderStage {
-        static initInfo: __private._cocos_rendering_render_stage__IRenderStageInfo;
-        threshold: number;
-        intensity: number;
-        iterations: number;
-        constructor();
-        initialize(info: __private._cocos_rendering_render_stage__IRenderStageInfo): boolean;
-        activate(pipeline: RenderPipeline, flow: RenderFlow): void;
-        destroy(): void;
-        render(camera: renderer.scene.Camera): void;
-    }
-    /**
-     * @en The postprocess render stage
-     * @zh 后处理渲染阶段。
-     */
-    export class PostProcessStage extends RenderStage {
-        static initInfo: __private._cocos_rendering_render_stage__IRenderStageInfo;
-        constructor();
-        initialize(info: __private._cocos_rendering_render_stage__IRenderStageInfo): boolean;
-        activate(pipeline: RenderPipeline, flow: RenderFlow): void;
-        destroy(): void;
-        render(camera: renderer.scene.Camera): void;
-    }
-    /**
-     * @en Shadow map render flow
-     * @zh 阴影贴图绘制流程
-     */
-    export class ShadowFlow extends RenderFlow {
-        /**
-         * @en A common initialization info for shadow map render flow
-         * @zh 一个通用的 ShadowFlow 的初始化信息对象
-         */
-        static initInfo: __private._cocos_rendering_render_flow__IRenderFlowInfo;
-        initialize(info: __private._cocos_rendering_render_flow__IRenderFlowInfo): boolean;
-        activate(pipeline: RenderPipeline): void;
-        render(camera: renderer.scene.Camera): void;
-        destroy(): void;
-        /**
          * @deprecated since v3.5.0, this is an engine private interface that will be removed in the future.
          */
-        _initShadowFrameBuffer(pipeline: RenderPipeline, light: renderer.scene.Light, swapchain: gfx.Swapchain): void;
-    }
-    /**
-     * @en Shadow map render stage
-     * @zh 阴影渲染阶段。
-     */
-    export class ShadowStage extends RenderStage {
-        /**
-         * @en A common initialization info for shadow map render stage
-         * @zh 一个通用的 ShadowStage 的初始化信息对象
-         */
-        static initInfo: __private._cocos_rendering_render_stage__IRenderStageInfo;
-        /**
-         * @en Sets the render shadow map info
-         * @zh 设置阴影渲染信息
-         * @param light
-         * @param shadowFrameBuffer
-         * @param level 层级
-         */
-        setUsage(globalDS: gfx.DescriptorSet, light: renderer.scene.Light, shadowFrameBuffer: gfx.Framebuffer, level?: number): void;
-        destroy(): void;
-        clearFramebuffer(camera: renderer.scene.Camera): void;
-        render(camera: renderer.scene.Camera): void;
-        activate(pipeline: ForwardPipeline, flow: ShadowFlow): void;
-    }
-    export class InstancedBuffer {
-        instances: __private._cocos_rendering_instanced_buffer__IInstancedItem[];
-        pass: renderer.Pass;
-        hasPendingModels: boolean;
-        dynamicOffsets: number[];
-        constructor(pass: renderer.Pass);
-        destroy(): void;
-        merge(subModel: renderer.scene.SubModel, attrs: renderer.scene.IInstancedAttributeBlock, passIdx: number, shaderImplant?: gfx.Shader | null): void;
-        uploadBuffers(cmdBuff: gfx.CommandBuffer): void;
-        clear(): void;
-    }
-    export class PipelineStateManager {
-        static getOrCreatePipelineState(device: gfx.Device, pass: renderer.Pass, shader: gfx.Shader, renderPass: gfx.RenderPass, ia: gfx.InputAssembler): gfx.PipelineState;
-    }
-    export class PipelineEventProcessor extends EventTarget {
-        eventTargetOn: <TFunction extends (...any: any[]) => void>(type: string | number, callback: TFunction, thisArg?: any, once?: boolean | undefined) => TFunction;
-        eventTargetOnce: <TFunction extends (...any: any[]) => void>(type: string | number, callback: TFunction, thisArg?: any) => TFunction;
-        on(type: PipelineEventType, callback: any, target?: any, once?: boolean): typeof callback;
-        once(type: PipelineEventType, callback: any, target?: any): typeof callback;
-    }
-    export enum PipelineEventType {
-        /**
-         * @en
-         * The event type for render frame begin event
-         *
-         * @zh
-         * 帧渲染开始事件。
-         */
-        RENDER_FRAME_BEGIN = "render-frame-begin",
-        /**
-         * @en
-         * The event type for render frame end event
-         *
-         * @zh
-         * 帧渲染结束事件。
-         */
-        RENDER_FRAME_END = "render-frame-end",
-        /**
-         * @en
-         * The event type for render camera begin event
-         *
-         * @zh
-         * 相机渲染开始事件。
-         */
-        RENDER_CAMERA_BEGIN = "render-camera-begin",
-        /**
-         * @en
-         * The event type for render camera end event
-         *
-         * @zh
-         * 相机渲染结束事件。
-         */
-        RENDER_CAMERA_END = "render-camera-end",
-        /**
-         * @en
-         * FBO attachment texture zoom event
-         *
-         * @zh
-         * FBO附件纹理缩放事件。
-         */
-        ATTACHMENT_SCALE_CAHNGED = "attachment-scale-changed"
-    }
-    /**
-     * @en Rendering debug view control class
-     * @zh 渲染调试控制类
-     */
-    export class DebugView {
-        /**
-         * @en Toggle rendering single debug mode.
-         * @zh 设置渲染单项调试模式。
-         */
-        get singleMode(): __private._cocos_rendering_debug_view__DebugViewSingleType;
-        set singleMode(val: __private._cocos_rendering_debug_view__DebugViewSingleType);
-        /**
-         * @en Toggle normal / pure lighting mode.
-         * @zh 切换正常光照和仅光照模式。
-         */
-        get lightingWithAlbedo(): boolean;
-        set lightingWithAlbedo(val: boolean);
-        /**
-         * @en Toggle CSM layer coloration mode.
-         * @zh 切换级联阴影染色调试模式。
-         */
-        get csmLayerColoration(): boolean;
-        set csmLayerColoration(val: boolean);
-        protected _singleMode: __private._cocos_rendering_debug_view__DebugViewSingleType;
-        protected _compositeModeValue: number;
-        protected _lightingWithAlbedo: boolean;
-        protected _csmLayerColoration: boolean;
-        protected _nativeConfig: any;
+        _$erialized: null;
         constructor();
-        /**
-         * @en Whether enabled with specified rendering composite debug mode.
-         * @zh 获取指定的渲染组合调试模式是否开启。
-         * @param Specified composite type.
-         */
-        isCompositeModeEnabled(val: number): boolean;
-        /**
-         * @en Toggle specified rendering composite debug mode.
-         * @zh 开关指定的渲染组合调试模式。
-         * @param Specified composite type, enable or disable.
-         */
-        enableCompositeMode(val: __private._cocos_rendering_debug_view__DebugViewCompositeType, enable: boolean): void;
-        /**
-         * @en Toggle all rendering composite debug mode.
-         * @zh 开关所有的渲染组合调试模式。
-         */
-        enableAllCompositeMode(enable: boolean): void;
-        /**
-         * @en Get rendering debug view on / off state.
-         * @zh 查询当前是否开启了渲染调试模式。
-         */
-        isEnabled(): boolean;
-        /**
-         * @en Disable all debug view modes, reset to standard rendering mode.
-         * @zh 关闭所有的渲染调试模式,恢复到正常渲染。
-         */
-        reset(): void;
-        /**
-         * @internal
-         */
-        protected _activate(): void;
-        protected _updatePipeline(): void;
+        onLoad(): void;
     }
-    export const getPhaseID: (phaseName: string | number) => number;
-    export class ForwardPipelineBuilder extends __private._cocos_rendering_custom_pipeline__PipelineBuilder {
-        setup(cameras: renderer.scene.Camera[], ppl: __private._cocos_rendering_custom_pipeline__Pipeline): void;
-    }
-    export class DeferredPipelineBuilder extends __private._cocos_rendering_custom_pipeline__PipelineBuilder {
-        setup(cameras: renderer.scene.Camera[], ppl: __private._cocos_rendering_custom_pipeline__Pipeline): void;
-        readonly _deferredData: __private._cocos_rendering_custom_builtin_pipelines__DeferredData;
-    }
     /**
      * @en
      * Base class for handling assets used in Creator.<br/>
      *
@@ -49918,9 +49918,9 @@
             [_cocos_animation_marionette_create_eval__createEval](context: _cocos_animation_marionette_motion__MotionEvalContext): _cocos_animation_marionette_motion__MotionEval | null;
             clone(): _cocos_animation_marionette_motion__Motion;
         }
         export class _editor_src_marionette_preview__AnimationGraphPartialPreviewer {
-            constructor(root: Node);
+            constructor(root: codec);
             destroy(): void;
             evaluate(): void;
             addVariable(id: string, type: animation.VariableType, value: animation.Value): void;
             removeVariable(id: string): void;
@@ -54744,9 +54744,9 @@
              */
             remoteBundles?: string[];
         }
         export type _pal_screen_adapter__ConfigOrientation = "auto" | "landscape" | "portrait";
-        function _cocos_core_scene_graph_component_scheduler__stableRemoveInactive(iterator: any, flagToClear: any): void;
+        function _cocos_scene_graph_component_scheduler__stableRemoveInactive(iterator: any, flagToClear: any): void;
         /**
          * @example
          * ```
          * import { js } from 'cc';
@@ -54769,23 +54769,23 @@
             fastRemove(value: T): void;
             fastRemoveAt(i: number): void;
             push(item: T): void;
         }
-        export class _cocos_core_scene_graph_component_scheduler__LifeCycleInvoker {
-            static stableRemoveInactive: typeof _cocos_core_scene_graph_component_scheduler__stableRemoveInactive;
+        export class _cocos_scene_graph_component_scheduler__LifeCycleInvoker {
+            static stableRemoveInactive: typeof _cocos_scene_graph_component_scheduler__stableRemoveInactive;
             protected _zero: _cocos_core_utils_mutable_forward_iterator__default<any>;
             protected _neg: _cocos_core_utils_mutable_forward_iterator__default<any>;
             protected _pos: _cocos_core_utils_mutable_forward_iterator__default<any>;
             protected _invoke: any;
             constructor(invokeFunc: any);
         }
-        export class _cocos_core_scene_graph_component_scheduler__OneOffInvoker extends _cocos_core_scene_graph_component_scheduler__LifeCycleInvoker {
+        export class _cocos_scene_graph_component_scheduler__OneOffInvoker extends _cocos_scene_graph_component_scheduler__LifeCycleInvoker {
             add(comp: any): void;
             remove(comp: any): void;
             cancelInactive(flagToClear: any): void;
             invoke(): void;
         }
-        export class _cocos_core_scene_graph_component_scheduler__ReusableInvoker extends _cocos_core_scene_graph_component_scheduler__LifeCycleInvoker {
+        export class _cocos_scene_graph_component_scheduler__ReusableInvoker extends _cocos_scene_graph_component_scheduler__LifeCycleInvoker {
             add(comp: any): void;
             remove(comp: any): void;
             invoke(dt: any): void;
         }
@@ -54794,24 +54794,24 @@
          * It collaborates with [[NodeActivator]] to schedule and invoke life cycle methods for components
          * @zh 组件生命周期函数的调度器。
          * 它和 [[NodeActivator]] 一起调度并执行组件的生命周期函数。
          */
-        export class _cocos_core_scene_graph_component_scheduler__ComponentScheduler {
+        export class _cocos_scene_graph_component_scheduler__ComponentScheduler {
             /**
              * @en The invoker of `start` callback
              * @zh `start` 回调的调度器
              */
-            startInvoker: _cocos_core_scene_graph_component_scheduler__OneOffInvoker;
+            startInvoker: _cocos_scene_graph_component_scheduler__OneOffInvoker;
             /**
              * @en The invoker of `update` callback
              * @zh `update` 回调的调度器
              */
-            updateInvoker: _cocos_core_scene_graph_component_scheduler__ReusableInvoker;
+            updateInvoker: _cocos_scene_graph_component_scheduler__ReusableInvoker;
             /**
              * @en The invoker of `lateUpdate` callback
              * @zh `lateUpdate` 回调的调度器
              */
-            lateUpdateInvoker: _cocos_core_scene_graph_component_scheduler__ReusableInvoker;
+            lateUpdateInvoker: _cocos_scene_graph_component_scheduler__ReusableInvoker;
             constructor();
             /**
              * @en Cancel all future callbacks, including `start`, `update` and `lateUpdate`
              * @zh 取消所有未来的函数调度,包括 `start`,`update` 和 `lateUpdate`
@@ -54855,59 +54855,9 @@
              * @param dt @en Time passed after the last frame in seconds @zh 距离上一帧的时间,以秒计算
              */
             lateUpdatePhase(dt: number): void;
         }
-        export type _types_globals__AbstractedConstructor<T = unknown> = new (...args: any[]) => T;
         /**
-         * @en Node's UI properties abstraction
-         * @zh 节点上 UI 相关的属性抽象类
-         */
-        export class _cocos_core_scene_graph_node_ui_properties__NodeUIProperties {
-            /**
-             * @en The UI transform component
-             * @zh UI 变换组件
-             */
-            get uiTransformComp(): UITransform | null;
-            set uiTransformComp(value: UITransform | null);
-            /**
-             * @en The base UI component
-             * @zh UI 基类组件
-             */
-            get uiComp(): UIMeshRenderer | UIRenderer | null;
-            set uiComp(comp: UIMeshRenderer | UIRenderer | null);
-            get opacity(): number;
-            get localOpacity(): number;
-            set localOpacity(val: number);
-            colorDirty: boolean;
-            protected _uiTransformComp: UITransform | null;
-            constructor(node: any);
-            /**
-             * @deprecated since v3.4
-             */
-            applyOpacity(effectOpacity: any): void;
-            /**
-             * @en Make the opacity state of node tree is dirty, not effect anymore
-             * @zh 为结点树的透明度状态设置脏标签,不再有效果
-             * @deprecated since v3.4
-             */
-            static markOpacityTree(node: any, isDirty?: boolean): void;
-        }
-        /**
-         * @en The projection type.
-         * @zh 投影类型。
-         */
-        export const _cocos_core_components_camera_component__ProjectionType: typeof renderer.scene.CameraProjection;
-        export const _cocos_core_components_camera_component__FOVAxis: typeof renderer.scene.CameraFOVAxis;
-        export const _cocos_core_components_camera_component__ClearFlag: {
-            SKYBOX: number;
-            SOLID_COLOR: gfx.ClearFlagBit;
-            DEPTH_ONLY: gfx.ClearFlagBit;
-            DONT_CLEAR: gfx.ClearFlagBit;
-        };
-        export const _cocos_core_components_camera_component__Aperture: typeof renderer.scene.CameraAperture;
-        export const _cocos_core_components_camera_component__Shutter: typeof renderer.scene.CameraShutter;
-        export const _cocos_core_components_camera_component__ISO: typeof renderer.scene.CameraISO;
-        /**
          * @en
          * The parameter describing a real keyframe value.
          * In the case of partial keyframe value,
          * each component of the keyframe value is taken from the parameter.
@@ -55490,9 +55440,59 @@
             readonly _deferredLightingMaterial: Material;
             readonly _deferredPostMaterial: Material;
             _antiAliasing: _cocos_rendering_custom_define__AntiAliasing;
         }
+        export type _types_globals__AbstractedConstructor<T = unknown> = new (...args: any[]) => T;
         /**
+         * @en Node's UI properties abstraction
+         * @zh 节点上 UI 相关的属性抽象类
+         */
+        export class _cocos_scene_graph_node_ui_properties__NodeUIProperties {
+            /**
+             * @en The UI transform component
+             * @zh UI 变换组件
+             */
+            get uiTransformComp(): UITransform | null;
+            set uiTransformComp(value: UITransform | null);
+            /**
+             * @en The base UI component
+             * @zh UI 基类组件
+             */
+            get uiComp(): UIMeshRenderer | UIRenderer | null;
+            set uiComp(comp: UIMeshRenderer | UIRenderer | null);
+            get opacity(): number;
+            get localOpacity(): number;
+            set localOpacity(val: number);
+            colorDirty: boolean;
+            protected _uiTransformComp: UITransform | null;
+            constructor(node: any);
+            /**
+             * @deprecated since v3.4
+             */
+            applyOpacity(effectOpacity: any): void;
+            /**
+             * @en Make the opacity state of node tree is dirty, not effect anymore
+             * @zh 为结点树的透明度状态设置脏标签,不再有效果
+             * @deprecated since v3.4
+             */
+            static markOpacityTree(node: any, isDirty?: boolean): void;
+        }
+        /**
+         * @en The projection type.
+         * @zh 投影类型。
+         */
+        export const _cocos_misc_camera_component__ProjectionType: typeof renderer.scene.CameraProjection;
+        export const _cocos_misc_camera_component__FOVAxis: typeof renderer.scene.CameraFOVAxis;
+        export const _cocos_misc_camera_component__ClearFlag: {
+            SKYBOX: number;
+            SOLID_COLOR: gfx.ClearFlagBit;
+            DEPTH_ONLY: gfx.ClearFlagBit;
+            DONT_CLEAR: gfx.ClearFlagBit;
+        };
+        export const _cocos_misc_camera_component__Aperture: typeof renderer.scene.CameraAperture;
+        export const _cocos_misc_camera_component__Shutter: typeof renderer.scene.CameraShutter;
+        export const _cocos_misc_camera_component__ISO: typeof renderer.scene.CameraISO;
+        /**
          * @param error - null or the error info
          * @param node - the created node or null
          */
         export type _cocos_asset_assets_asset__CreateNodeCallback = (error: Error | null, node: Node) => void;

github-actions[bot] avatar Sep 23 '22 07:09 github-actions[bot]