161847f8eSopenharmony_ci/*
261847f8eSopenharmony_ci * Copyright (c) 2023 Huawei Device Co., Ltd.
361847f8eSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
461847f8eSopenharmony_ci * you may not use this file except in compliance with the License.
561847f8eSopenharmony_ci * You may obtain a copy of the License at
661847f8eSopenharmony_ci *
761847f8eSopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
861847f8eSopenharmony_ci *
961847f8eSopenharmony_ci * Unless required by applicable law or agreed to in writing, software
1061847f8eSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
1161847f8eSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1261847f8eSopenharmony_ci * See the License for the specific language governing permissions and
1361847f8eSopenharmony_ci * limitations under the License.
1461847f8eSopenharmony_ci */
1561847f8eSopenharmony_ci
1661847f8eSopenharmony_ci/**
1761847f8eSopenharmony_ci * @file
1861847f8eSopenharmony_ci * @kit ArkUI
1961847f8eSopenharmony_ci */
2061847f8eSopenharmony_ci
2161847f8eSopenharmony_ci/**
2261847f8eSopenharmony_ci * Defines a pair of given type for particle.
2361847f8eSopenharmony_ci *
2461847f8eSopenharmony_ci * @typedef { [T1, T2] } ParticleTuple
2561847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full
2661847f8eSopenharmony_ci * @crossplatform
2761847f8eSopenharmony_ci * @atomicservice
2861847f8eSopenharmony_ci * @since 14
2961847f8eSopenharmony_ci */
3061847f8eSopenharmony_cideclare type ParticleTuple<T1, T2> = [T1, T2];
3161847f8eSopenharmony_ci
3261847f8eSopenharmony_ci/**
3361847f8eSopenharmony_ci * Defines velocity options.
3461847f8eSopenharmony_ci *
3561847f8eSopenharmony_ci * @typedef VelocityOptions
3661847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full
3761847f8eSopenharmony_ci * @crossplatform
3861847f8eSopenharmony_ci * @atomicservice
3961847f8eSopenharmony_ci * @since 14
4061847f8eSopenharmony_ci */
4161847f8eSopenharmony_cideclare interface VelocityOptions {
4261847f8eSopenharmony_ci  /**
4361847f8eSopenharmony_ci   * Particle speed.
4461847f8eSopenharmony_ci   * @type { ParticleTuple<number, number> }
4561847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
4661847f8eSopenharmony_ci   * @crossplatform
4761847f8eSopenharmony_ci   * @since 10
4861847f8eSopenharmony_ci   */
4961847f8eSopenharmony_ci  /**
5061847f8eSopenharmony_ci   * Particle speed.
5161847f8eSopenharmony_ci   * @type { ParticleTuple<number, number> }
5261847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
5361847f8eSopenharmony_ci   * @crossplatform
5461847f8eSopenharmony_ci   * @atomicservice
5561847f8eSopenharmony_ci   * @since 11
5661847f8eSopenharmony_ci   */
5761847f8eSopenharmony_ci  speed: ParticleTuple<number, number>;
5861847f8eSopenharmony_ci
5961847f8eSopenharmony_ci  /**
6061847f8eSopenharmony_ci   * Angle of particle's direction.
6161847f8eSopenharmony_ci   * @type { ParticleTuple<number, number> }
6261847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
6361847f8eSopenharmony_ci   * @crossplatform
6461847f8eSopenharmony_ci   * @since 10
6561847f8eSopenharmony_ci   */
6661847f8eSopenharmony_ci  /**
6761847f8eSopenharmony_ci   * Angle of particle's direction.
6861847f8eSopenharmony_ci   * @type { ParticleTuple<number, number> }
6961847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
7061847f8eSopenharmony_ci   * @crossplatform
7161847f8eSopenharmony_ci   * @atomicservice
7261847f8eSopenharmony_ci   * @since 11
7361847f8eSopenharmony_ci   */
7461847f8eSopenharmony_ci  angle: ParticleTuple<number, number>;
7561847f8eSopenharmony_ci}
7661847f8eSopenharmony_ci
7761847f8eSopenharmony_ci/**
7861847f8eSopenharmony_ci * Defines acceleration options.
7961847f8eSopenharmony_ci *
8061847f8eSopenharmony_ci * @typedef AccelerationOptions
8161847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full
8261847f8eSopenharmony_ci * @crossplatform
8361847f8eSopenharmony_ci * @atomicservice
8461847f8eSopenharmony_ci * @since 14
8561847f8eSopenharmony_ci */
8661847f8eSopenharmony_cideclare interface AccelerationOptions<
8761847f8eSopenharmony_ci  ACC_SPEED_UPDATER extends ParticleUpdater,
8861847f8eSopenharmony_ci  ACC_ANGLE_UPDATER extends ParticleUpdater
8961847f8eSopenharmony_ci> {
9061847f8eSopenharmony_ci  /**
9161847f8eSopenharmony_ci   * Speed property options.
9261847f8eSopenharmony_ci   * @type { ?ParticlePropertyOptions<number, ACC_SPEED_UPDATER> }
9361847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
9461847f8eSopenharmony_ci   * @crossplatform
9561847f8eSopenharmony_ci   * @since 10
9661847f8eSopenharmony_ci   */
9761847f8eSopenharmony_ci  /**
9861847f8eSopenharmony_ci   * Speed property options.
9961847f8eSopenharmony_ci   * @type { ?ParticlePropertyOptions<number, ACC_SPEED_UPDATER> }
10061847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
10161847f8eSopenharmony_ci   * @crossplatform
10261847f8eSopenharmony_ci   * @atomicservice
10361847f8eSopenharmony_ci   * @since 11
10461847f8eSopenharmony_ci   */
10561847f8eSopenharmony_ci  speed?: ParticlePropertyOptions<number, ACC_SPEED_UPDATER>;
10661847f8eSopenharmony_ci
10761847f8eSopenharmony_ci  /**
10861847f8eSopenharmony_ci   * Angle property options.
10961847f8eSopenharmony_ci   * @type { ?ParticlePropertyOptions<number, ACC_ANGLE_UPDATER> }
11061847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
11161847f8eSopenharmony_ci   * @crossplatform
11261847f8eSopenharmony_ci   * @since 10
11361847f8eSopenharmony_ci   */
11461847f8eSopenharmony_ci  /**
11561847f8eSopenharmony_ci   * Angle property options.
11661847f8eSopenharmony_ci   * @type { ?ParticlePropertyOptions<number, ACC_ANGLE_UPDATER> }
11761847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
11861847f8eSopenharmony_ci   * @crossplatform
11961847f8eSopenharmony_ci   * @atomicservice
12061847f8eSopenharmony_ci   * @since 11
12161847f8eSopenharmony_ci   */
12261847f8eSopenharmony_ci  angle?: ParticlePropertyOptions<number, ACC_ANGLE_UPDATER>;
12361847f8eSopenharmony_ci}
12461847f8eSopenharmony_ci
12561847f8eSopenharmony_ci/**
12661847f8eSopenharmony_ci * Defines the ParticleOptions Interface.
12761847f8eSopenharmony_ci * @interface ParticleOptions
12861847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full
12961847f8eSopenharmony_ci * @crossplatform
13061847f8eSopenharmony_ci * @since 10
13161847f8eSopenharmony_ci */
13261847f8eSopenharmony_ci/**
13361847f8eSopenharmony_ci * Defines the ParticleOptions Interface.
13461847f8eSopenharmony_ci * @interface ParticleOptions
13561847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full
13661847f8eSopenharmony_ci * @crossplatform
13761847f8eSopenharmony_ci * @atomicservice
13861847f8eSopenharmony_ci * @since 11
13961847f8eSopenharmony_ci */
14061847f8eSopenharmony_ciinterface ParticleOptions<
14161847f8eSopenharmony_ci  PARTICLE extends ParticleType,
14261847f8eSopenharmony_ci  COLOR_UPDATER extends ParticleUpdater,
14361847f8eSopenharmony_ci  OPACITY_UPDATER extends ParticleUpdater,
14461847f8eSopenharmony_ci  SCALE_UPDATER extends ParticleUpdater,
14561847f8eSopenharmony_ci  ACC_SPEED_UPDATER extends ParticleUpdater,
14661847f8eSopenharmony_ci  ACC_ANGLE_UPDATER extends ParticleUpdater,
14761847f8eSopenharmony_ci  SPIN_UPDATER extends ParticleUpdater
14861847f8eSopenharmony_ci> {
14961847f8eSopenharmony_ci  /**
15061847f8eSopenharmony_ci   * Particle emitter.
15161847f8eSopenharmony_ci   * @type { EmitterOptions<PARTICLE> }
15261847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
15361847f8eSopenharmony_ci   * @crossplatform
15461847f8eSopenharmony_ci   * @since 10
15561847f8eSopenharmony_ci   */
15661847f8eSopenharmony_ci  /**
15761847f8eSopenharmony_ci   * Particle emitter.
15861847f8eSopenharmony_ci   * @type { EmitterOptions<PARTICLE> }
15961847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
16061847f8eSopenharmony_ci   * @crossplatform
16161847f8eSopenharmony_ci   * @atomicservice
16261847f8eSopenharmony_ci   * @since 11
16361847f8eSopenharmony_ci   */
16461847f8eSopenharmony_ci  emitter: EmitterOptions<PARTICLE>;
16561847f8eSopenharmony_ci
16661847f8eSopenharmony_ci  /**
16761847f8eSopenharmony_ci   * Particle color.
16861847f8eSopenharmony_ci   * @type { ?ParticleColorPropertyOptions<COLOR_UPDATER> }
16961847f8eSopenharmony_ci   * @default {range:['#FFFFFF','#FFFFFF']}
17061847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
17161847f8eSopenharmony_ci   * @crossplatform
17261847f8eSopenharmony_ci   * @since 10
17361847f8eSopenharmony_ci   */
17461847f8eSopenharmony_ci  /**
17561847f8eSopenharmony_ci   * Particle color.
17661847f8eSopenharmony_ci   * @type { ?ParticleColorPropertyOptions<COLOR_UPDATER> }
17761847f8eSopenharmony_ci   * @default {range:['#FFFFFF','#FFFFFF']}
17861847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
17961847f8eSopenharmony_ci   * @crossplatform
18061847f8eSopenharmony_ci   * @atomicservice
18161847f8eSopenharmony_ci   * @since 11
18261847f8eSopenharmony_ci   */
18361847f8eSopenharmony_ci  color?: ParticleColorPropertyOptions<COLOR_UPDATER>;
18461847f8eSopenharmony_ci
18561847f8eSopenharmony_ci  /**
18661847f8eSopenharmony_ci   * Particle opacity.
18761847f8eSopenharmony_ci   * @type { ?ParticlePropertyOptions<number, OPACITY_UPDATER> }
18861847f8eSopenharmony_ci   * @default {range:[1.0,1.0]}
18961847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
19061847f8eSopenharmony_ci   * @crossplatform
19161847f8eSopenharmony_ci   * @since 10
19261847f8eSopenharmony_ci   */
19361847f8eSopenharmony_ci  /**
19461847f8eSopenharmony_ci   * Particle opacity.
19561847f8eSopenharmony_ci   * @type { ?ParticlePropertyOptions<number, OPACITY_UPDATER> }
19661847f8eSopenharmony_ci   * @default {range:[1.0,1.0]}
19761847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
19861847f8eSopenharmony_ci   * @crossplatform
19961847f8eSopenharmony_ci   * @atomicservice
20061847f8eSopenharmony_ci   * @since 11
20161847f8eSopenharmony_ci   */
20261847f8eSopenharmony_ci  opacity?: ParticlePropertyOptions<number, OPACITY_UPDATER>;
20361847f8eSopenharmony_ci
20461847f8eSopenharmony_ci  /**
20561847f8eSopenharmony_ci   * Particle scale.
20661847f8eSopenharmony_ci   * @type { ?ParticlePropertyOptions<number, SCALE_UPDATER> }
20761847f8eSopenharmony_ci   * @default {range:[1.0,1.0]}
20861847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
20961847f8eSopenharmony_ci   * @crossplatform
21061847f8eSopenharmony_ci   * @since 10
21161847f8eSopenharmony_ci   */
21261847f8eSopenharmony_ci  /**
21361847f8eSopenharmony_ci   * Particle scale.
21461847f8eSopenharmony_ci   * @type { ?ParticlePropertyOptions<number, SCALE_UPDATER> }
21561847f8eSopenharmony_ci   * @default {range:[1.0,1.0]}
21661847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
21761847f8eSopenharmony_ci   * @crossplatform
21861847f8eSopenharmony_ci   * @atomicservice
21961847f8eSopenharmony_ci   * @since 11
22061847f8eSopenharmony_ci   */
22161847f8eSopenharmony_ci  scale?: ParticlePropertyOptions<number, SCALE_UPDATER>;
22261847f8eSopenharmony_ci
22361847f8eSopenharmony_ci  /**
22461847f8eSopenharmony_ci   * Particle velocity.
22561847f8eSopenharmony_ci   * @type { ?object }
22661847f8eSopenharmony_ci   * @default {speed:[0,0];angle:[0,0]}
22761847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
22861847f8eSopenharmony_ci   * @crossplatform
22961847f8eSopenharmony_ci   * @since 10
23061847f8eSopenharmony_ci   */
23161847f8eSopenharmony_ci  /**
23261847f8eSopenharmony_ci   * Particle velocity.
23361847f8eSopenharmony_ci   * @type { ?object }
23461847f8eSopenharmony_ci   * @default {speed:[0,0];angle:[0,0]}
23561847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
23661847f8eSopenharmony_ci   * @crossplatform
23761847f8eSopenharmony_ci   * @atomicservice
23861847f8eSopenharmony_ci   * @since 11
23961847f8eSopenharmony_ci   */
24061847f8eSopenharmony_ci  /**
24161847f8eSopenharmony_ci   * Particle velocity.
24261847f8eSopenharmony_ci   * @type { ?VelocityOptions }
24361847f8eSopenharmony_ci   * @default {speed:[0,0];angle:[0,0]}
24461847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
24561847f8eSopenharmony_ci   * @crossplatform
24661847f8eSopenharmony_ci   * @atomicservice
24761847f8eSopenharmony_ci   * @since 14
24861847f8eSopenharmony_ci   */
24961847f8eSopenharmony_ci  velocity?: VelocityOptions;
25061847f8eSopenharmony_ci
25161847f8eSopenharmony_ci  /**
25261847f8eSopenharmony_ci   * Particle acceleration.
25361847f8eSopenharmony_ci   * @type { ?object }
25461847f8eSopenharmony_ci   * @default {speed:{range:[0,0]};angle:{range:[0,0]}}
25561847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
25661847f8eSopenharmony_ci   * @crossplatform
25761847f8eSopenharmony_ci   * @since 10
25861847f8eSopenharmony_ci   */
25961847f8eSopenharmony_ci  /**
26061847f8eSopenharmony_ci   * Particle acceleration.
26161847f8eSopenharmony_ci   * @type { ?object }
26261847f8eSopenharmony_ci   * @default {speed:{range:[0,0]};angle:{range:[0,0]}}
26361847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
26461847f8eSopenharmony_ci   * @crossplatform
26561847f8eSopenharmony_ci   * @atomicservice
26661847f8eSopenharmony_ci   * @since 11
26761847f8eSopenharmony_ci   */
26861847f8eSopenharmony_ci  /**
26961847f8eSopenharmony_ci   * Particle acceleration.
27061847f8eSopenharmony_ci   * @type { ?AccelerationOptions<ACC_SPEED_UPDATER, ACC_ANGLE_UPDATER> }
27161847f8eSopenharmony_ci   * @default {speed:{range:[0,0]};angle:{range:[0,0]}}
27261847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
27361847f8eSopenharmony_ci   * @crossplatform
27461847f8eSopenharmony_ci   * @atomicservice
27561847f8eSopenharmony_ci   * @since 14
27661847f8eSopenharmony_ci   */
27761847f8eSopenharmony_ci  acceleration?: AccelerationOptions<ACC_SPEED_UPDATER, ACC_ANGLE_UPDATER>;
27861847f8eSopenharmony_ci
27961847f8eSopenharmony_ci  /**
28061847f8eSopenharmony_ci   * Particle spin.
28161847f8eSopenharmony_ci   * @type { ?ParticlePropertyOptions<number, SPIN_UPDATER> }
28261847f8eSopenharmony_ci   * @default {range:[0,0]}
28361847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
28461847f8eSopenharmony_ci   * @crossplatform
28561847f8eSopenharmony_ci   * @since 10
28661847f8eSopenharmony_ci   */
28761847f8eSopenharmony_ci  /**
28861847f8eSopenharmony_ci   * Particle spin.
28961847f8eSopenharmony_ci   * @type { ?ParticlePropertyOptions<number, SPIN_UPDATER> }
29061847f8eSopenharmony_ci   * @default {range:[0,0]}
29161847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
29261847f8eSopenharmony_ci   * @crossplatform
29361847f8eSopenharmony_ci   * @atomicservice
29461847f8eSopenharmony_ci   * @since 11
29561847f8eSopenharmony_ci   */
29661847f8eSopenharmony_ci  spin?: ParticlePropertyOptions<number, SPIN_UPDATER>;
29761847f8eSopenharmony_ci}
29861847f8eSopenharmony_ci
29961847f8eSopenharmony_ci/**
30061847f8eSopenharmony_ci * Defines the parameters for a point-like particle.
30161847f8eSopenharmony_ci * @interface PointParticleParameters
30261847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full
30361847f8eSopenharmony_ci * @crossplatform
30461847f8eSopenharmony_ci * @since 10
30561847f8eSopenharmony_ci */
30661847f8eSopenharmony_ci/**
30761847f8eSopenharmony_ci * Defines the parameters for a point-like particle.
30861847f8eSopenharmony_ci * @interface PointParticleParameters
30961847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full
31061847f8eSopenharmony_ci * @crossplatform
31161847f8eSopenharmony_ci * @atomicservice
31261847f8eSopenharmony_ci * @since 11
31361847f8eSopenharmony_ci */
31461847f8eSopenharmony_ciinterface PointParticleParameters {
31561847f8eSopenharmony_ci  /**
31661847f8eSopenharmony_ci   * Particle radius.
31761847f8eSopenharmony_ci   * @type { VP }
31861847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
31961847f8eSopenharmony_ci   * @crossplatform
32061847f8eSopenharmony_ci   * @since 10
32161847f8eSopenharmony_ci   */
32261847f8eSopenharmony_ci  /**
32361847f8eSopenharmony_ci   * Particle radius.
32461847f8eSopenharmony_ci   * @type { VP }
32561847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
32661847f8eSopenharmony_ci   * @crossplatform
32761847f8eSopenharmony_ci   * @atomicservice
32861847f8eSopenharmony_ci   * @since 11
32961847f8eSopenharmony_ci   */
33061847f8eSopenharmony_ci  radius: VP;
33161847f8eSopenharmony_ci}
33261847f8eSopenharmony_ci
33361847f8eSopenharmony_ci/**
33461847f8eSopenharmony_ci * Defines the parameters for an image-like particle.
33561847f8eSopenharmony_ci * @interface ImageParticleParameters
33661847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full
33761847f8eSopenharmony_ci * @crossplatform
33861847f8eSopenharmony_ci * @since 10
33961847f8eSopenharmony_ci */
34061847f8eSopenharmony_ci/**
34161847f8eSopenharmony_ci * Defines the parameters for an image-like particle.
34261847f8eSopenharmony_ci * @interface ImageParticleParameters
34361847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full
34461847f8eSopenharmony_ci * @crossplatform
34561847f8eSopenharmony_ci * @atomicservice
34661847f8eSopenharmony_ci * @since 11
34761847f8eSopenharmony_ci */
34861847f8eSopenharmony_ciinterface ImageParticleParameters {
34961847f8eSopenharmony_ci  /**
35061847f8eSopenharmony_ci   * Particle image pixelMap.
35161847f8eSopenharmony_ci   * @type { ResourceStr }
35261847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
35361847f8eSopenharmony_ci   * @crossplatform
35461847f8eSopenharmony_ci   * @since 10
35561847f8eSopenharmony_ci   */
35661847f8eSopenharmony_ci  /**
35761847f8eSopenharmony_ci   * Particle image pixelMap.
35861847f8eSopenharmony_ci   * @type { ResourceStr }
35961847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
36061847f8eSopenharmony_ci   * @crossplatform
36161847f8eSopenharmony_ci   * @atomicservice
36261847f8eSopenharmony_ci   * @since 11
36361847f8eSopenharmony_ci   */
36461847f8eSopenharmony_ci  src: ResourceStr;
36561847f8eSopenharmony_ci
36661847f8eSopenharmony_ci  /**
36761847f8eSopenharmony_ci   * Particle image size.
36861847f8eSopenharmony_ci   * @type { [Dimension, Dimension] }
36961847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
37061847f8eSopenharmony_ci   * @crossplatform
37161847f8eSopenharmony_ci   * @since 10
37261847f8eSopenharmony_ci   */
37361847f8eSopenharmony_ci  /**
37461847f8eSopenharmony_ci   * Particle image size.
37561847f8eSopenharmony_ci   * @type { [Dimension, Dimension] }
37661847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
37761847f8eSopenharmony_ci   * @crossplatform
37861847f8eSopenharmony_ci   * @atomicservice
37961847f8eSopenharmony_ci   * @since 11
38061847f8eSopenharmony_ci   */
38161847f8eSopenharmony_ci  /**
38261847f8eSopenharmony_ci   * Particle image size.
38361847f8eSopenharmony_ci   * @type { ParticleTuple<Dimension, Dimension> }
38461847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
38561847f8eSopenharmony_ci   * @crossplatform
38661847f8eSopenharmony_ci   * @atomicservice
38761847f8eSopenharmony_ci   * @since 14
38861847f8eSopenharmony_ci   */
38961847f8eSopenharmony_ci  size: ParticleTuple<Dimension, Dimension>;
39061847f8eSopenharmony_ci
39161847f8eSopenharmony_ci  /**
39261847f8eSopenharmony_ci   * Image fit.
39361847f8eSopenharmony_ci   * @type { ?ImageFit }
39461847f8eSopenharmony_ci   * @default ImageFit.Cover
39561847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
39661847f8eSopenharmony_ci   * @crossplatform
39761847f8eSopenharmony_ci   * @since 10
39861847f8eSopenharmony_ci   */
39961847f8eSopenharmony_ci  /**
40061847f8eSopenharmony_ci   * Image fit.
40161847f8eSopenharmony_ci   * @type { ?ImageFit }
40261847f8eSopenharmony_ci   * @default ImageFit.Cover
40361847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
40461847f8eSopenharmony_ci   * @crossplatform
40561847f8eSopenharmony_ci   * @atomicservice
40661847f8eSopenharmony_ci   * @since 11
40761847f8eSopenharmony_ci   */
40861847f8eSopenharmony_ci  objectFit?: ImageFit;
40961847f8eSopenharmony_ci}
41061847f8eSopenharmony_ci
41161847f8eSopenharmony_ci/**
41261847f8eSopenharmony_ci * Defines the particle configs.
41361847f8eSopenharmony_ci * @interface ParticleConfigs
41461847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full
41561847f8eSopenharmony_ci * @crossplatform
41661847f8eSopenharmony_ci * @since 10
41761847f8eSopenharmony_ci */
41861847f8eSopenharmony_ci/**
41961847f8eSopenharmony_ci * Defines the particle configs.
42061847f8eSopenharmony_ci * @interface ParticleConfigs
42161847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full
42261847f8eSopenharmony_ci * @crossplatform
42361847f8eSopenharmony_ci * @atomicservice
42461847f8eSopenharmony_ci * @since 11
42561847f8eSopenharmony_ci */
42661847f8eSopenharmony_ciinterface ParticleConfigs {
42761847f8eSopenharmony_ci  /**
42861847f8eSopenharmony_ci   * Point-like Particle.
42961847f8eSopenharmony_ci   * @type { PointParticleParameters } 
43061847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
43161847f8eSopenharmony_ci   * @crossplatform
43261847f8eSopenharmony_ci   * @since 10
43361847f8eSopenharmony_ci   */
43461847f8eSopenharmony_ci  /**
43561847f8eSopenharmony_ci   * Point-like Particle.
43661847f8eSopenharmony_ci   * @type { PointParticleParameters } 
43761847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
43861847f8eSopenharmony_ci   * @crossplatform
43961847f8eSopenharmony_ci   * @atomicservice
44061847f8eSopenharmony_ci   * @since 11
44161847f8eSopenharmony_ci   */
44261847f8eSopenharmony_ci  [ParticleType.POINT]: PointParticleParameters;
44361847f8eSopenharmony_ci
44461847f8eSopenharmony_ci  /**
44561847f8eSopenharmony_ci   * Image-like Particle.
44661847f8eSopenharmony_ci   * @type { ImageParticleParameters } 
44761847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
44861847f8eSopenharmony_ci   * @crossplatform
44961847f8eSopenharmony_ci   * @since 10
45061847f8eSopenharmony_ci   */
45161847f8eSopenharmony_ci  /**
45261847f8eSopenharmony_ci   * Image-like Particle.
45361847f8eSopenharmony_ci   * @type { ImageParticleParameters } 
45461847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
45561847f8eSopenharmony_ci   * @crossplatform
45661847f8eSopenharmony_ci   * @atomicservice
45761847f8eSopenharmony_ci   * @since 11
45861847f8eSopenharmony_ci   */
45961847f8eSopenharmony_ci  [ParticleType.IMAGE]: ImageParticleParameters;
46061847f8eSopenharmony_ci}
46161847f8eSopenharmony_ci
46261847f8eSopenharmony_ci/**
46361847f8eSopenharmony_ci * Defines the emitter property.
46461847f8eSopenharmony_ci *
46561847f8eSopenharmony_ci * @interface EmitterProperty
46661847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full
46761847f8eSopenharmony_ci * @crossplatform
46861847f8eSopenharmony_ci * @atomicservice
46961847f8eSopenharmony_ci * @since 12
47061847f8eSopenharmony_ci */
47161847f8eSopenharmony_ciinterface EmitterProperty {
47261847f8eSopenharmony_ci
47361847f8eSopenharmony_ci  /**
47461847f8eSopenharmony_ci   * Emitter index.
47561847f8eSopenharmony_ci   *
47661847f8eSopenharmony_ci   * @type { number }
47761847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
47861847f8eSopenharmony_ci   * @crossplatform
47961847f8eSopenharmony_ci   * @atomicservice
48061847f8eSopenharmony_ci   * @since 12
48161847f8eSopenharmony_ci   */
48261847f8eSopenharmony_ci  index: number;
48361847f8eSopenharmony_ci
48461847f8eSopenharmony_ci  /**
48561847f8eSopenharmony_ci   * Emitter emission rate.
48661847f8eSopenharmony_ci   *
48761847f8eSopenharmony_ci   * @type { ?number }
48861847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
48961847f8eSopenharmony_ci   * @crossplatform
49061847f8eSopenharmony_ci   * @atomicservice
49161847f8eSopenharmony_ci   * @since 12
49261847f8eSopenharmony_ci   */
49361847f8eSopenharmony_ci  emitRate?: number;
49461847f8eSopenharmony_ci
49561847f8eSopenharmony_ci  /**
49661847f8eSopenharmony_ci   * Emitter emission rate. Only support number type.
49761847f8eSopenharmony_ci   *
49861847f8eSopenharmony_ci   * @type { ?PositionT<number> }
49961847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
50061847f8eSopenharmony_ci   * @crossplatform
50161847f8eSopenharmony_ci   * @atomicservice
50261847f8eSopenharmony_ci   * @since 12
50361847f8eSopenharmony_ci   */
50461847f8eSopenharmony_ci  position?: PositionT<number>;
50561847f8eSopenharmony_ci
50661847f8eSopenharmony_ci  /**
50761847f8eSopenharmony_ci   * Emitter emission window size. Only support number type.
50861847f8eSopenharmony_ci   *
50961847f8eSopenharmony_ci   * @type { ?SizeT<number> }
51061847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
51161847f8eSopenharmony_ci   * @crossplatform
51261847f8eSopenharmony_ci   * @atomicservice
51361847f8eSopenharmony_ci   * @since 12
51461847f8eSopenharmony_ci   */
51561847f8eSopenharmony_ci  size?: SizeT<number>;
51661847f8eSopenharmony_ci}
51761847f8eSopenharmony_ci
51861847f8eSopenharmony_ci/**
51961847f8eSopenharmony_ci * Defines parameters of particles used by emitters.
52061847f8eSopenharmony_ci *
52161847f8eSopenharmony_ci * @typedef EmitterParticleOptions
52261847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full
52361847f8eSopenharmony_ci * @crossplatform
52461847f8eSopenharmony_ci * @atomicservice
52561847f8eSopenharmony_ci * @since 14
52661847f8eSopenharmony_ci */
52761847f8eSopenharmony_ciinterface EmitterParticleOptions<PARTICLE extends ParticleType> {
52861847f8eSopenharmony_ci  /**
52961847f8eSopenharmony_ci   * Particle type.
53061847f8eSopenharmony_ci   * @type { PARTICLE }
53161847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
53261847f8eSopenharmony_ci   * @crossplatform
53361847f8eSopenharmony_ci   * @since 10
53461847f8eSopenharmony_ci   */
53561847f8eSopenharmony_ci  /**
53661847f8eSopenharmony_ci   * Particle type.
53761847f8eSopenharmony_ci   * @type { PARTICLE }
53861847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
53961847f8eSopenharmony_ci   * @crossplatform
54061847f8eSopenharmony_ci   * @atomicservice
54161847f8eSopenharmony_ci   * @since 11
54261847f8eSopenharmony_ci   */
54361847f8eSopenharmony_ci  type: PARTICLE;
54461847f8eSopenharmony_ci  /**
54561847f8eSopenharmony_ci   * Particle config.
54661847f8eSopenharmony_ci   * @type { ParticleConfigs[PARTICLE] }
54761847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
54861847f8eSopenharmony_ci   * @crossplatform
54961847f8eSopenharmony_ci   * @since 10
55061847f8eSopenharmony_ci   */
55161847f8eSopenharmony_ci  /**
55261847f8eSopenharmony_ci   * Particle config.
55361847f8eSopenharmony_ci   * @type { ParticleConfigs[PARTICLE] }
55461847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
55561847f8eSopenharmony_ci   * @crossplatform
55661847f8eSopenharmony_ci   * @atomicservice
55761847f8eSopenharmony_ci   * @since 11
55861847f8eSopenharmony_ci   */
55961847f8eSopenharmony_ci  config: ParticleConfigs[PARTICLE];
56061847f8eSopenharmony_ci
56161847f8eSopenharmony_ci  /**
56261847f8eSopenharmony_ci   * Particle count.
56361847f8eSopenharmony_ci   * @type { number }
56461847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
56561847f8eSopenharmony_ci   * @crossplatform
56661847f8eSopenharmony_ci   * @since 10
56761847f8eSopenharmony_ci   */
56861847f8eSopenharmony_ci  /**
56961847f8eSopenharmony_ci   * Particle count.
57061847f8eSopenharmony_ci   * @type { number }
57161847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
57261847f8eSopenharmony_ci   * @crossplatform
57361847f8eSopenharmony_ci   * @atomicservice
57461847f8eSopenharmony_ci   * @since 11
57561847f8eSopenharmony_ci   */
57661847f8eSopenharmony_ci  count: number;
57761847f8eSopenharmony_ci
57861847f8eSopenharmony_ci  /**
57961847f8eSopenharmony_ci   * Particle lifetime.
58061847f8eSopenharmony_ci   * @type { ?number }
58161847f8eSopenharmony_ci   * @default 1000
58261847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
58361847f8eSopenharmony_ci   * @crossplatform
58461847f8eSopenharmony_ci   * @since 10
58561847f8eSopenharmony_ci   */
58661847f8eSopenharmony_ci  /**
58761847f8eSopenharmony_ci   * Particle lifetime.
58861847f8eSopenharmony_ci   * @type { ?number }
58961847f8eSopenharmony_ci   * @default 1000
59061847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
59161847f8eSopenharmony_ci   * @crossplatform
59261847f8eSopenharmony_ci   * @atomicservice
59361847f8eSopenharmony_ci   * @since 11
59461847f8eSopenharmony_ci   */
59561847f8eSopenharmony_ci  lifetime?: number;
59661847f8eSopenharmony_ci
59761847f8eSopenharmony_ci  /**
59861847f8eSopenharmony_ci   * Particle lifetimeRange,value range [0, ∞).
59961847f8eSopenharmony_ci   * when lifetimeRange>lifetime,minimum lifetime is 0.
60061847f8eSopenharmony_ci   * @type { ?number }
60161847f8eSopenharmony_ci   * @default 0
60261847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
60361847f8eSopenharmony_ci   * @crossplatform
60461847f8eSopenharmony_ci   * @atomicservice
60561847f8eSopenharmony_ci   * @since 12
60661847f8eSopenharmony_ci   */
60761847f8eSopenharmony_ci  lifetimeRange?: number;
60861847f8eSopenharmony_ci}
60961847f8eSopenharmony_ci
61061847f8eSopenharmony_ci/**
61161847f8eSopenharmony_ci * Defines the emitter Options.
61261847f8eSopenharmony_ci * @interface EmitterOptions
61361847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full
61461847f8eSopenharmony_ci * @crossplatform
61561847f8eSopenharmony_ci * @since 10
61661847f8eSopenharmony_ci */
61761847f8eSopenharmony_ci/**
61861847f8eSopenharmony_ci * Defines the emitter Options.
61961847f8eSopenharmony_ci * @interface EmitterOptions
62061847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full
62161847f8eSopenharmony_ci * @crossplatform
62261847f8eSopenharmony_ci * @atomicservice
62361847f8eSopenharmony_ci * @since 11
62461847f8eSopenharmony_ci */
62561847f8eSopenharmony_ciinterface EmitterOptions<PARTICLE extends ParticleType> {
62661847f8eSopenharmony_ci  /**
62761847f8eSopenharmony_ci   * Set particle config.
62861847f8eSopenharmony_ci   * @type { object } 
62961847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
63061847f8eSopenharmony_ci   * @crossplatform
63161847f8eSopenharmony_ci   * @since 10
63261847f8eSopenharmony_ci   */
63361847f8eSopenharmony_ci  /**
63461847f8eSopenharmony_ci   * Set particle config.
63561847f8eSopenharmony_ci   * @type { object } 
63661847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
63761847f8eSopenharmony_ci   * @crossplatform
63861847f8eSopenharmony_ci   * @atomicservice
63961847f8eSopenharmony_ci   * @since 11
64061847f8eSopenharmony_ci   */
64161847f8eSopenharmony_ci  /**
64261847f8eSopenharmony_ci   * Set particle config.
64361847f8eSopenharmony_ci   * @type { EmitterParticleOptions<PARTICLE> }
64461847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
64561847f8eSopenharmony_ci   * @crossplatform
64661847f8eSopenharmony_ci   * @atomicservice
64761847f8eSopenharmony_ci   * @since 14
64861847f8eSopenharmony_ci   */
64961847f8eSopenharmony_ci  particle: EmitterParticleOptions<PARTICLE>;
65061847f8eSopenharmony_ci
65161847f8eSopenharmony_ci  /**
65261847f8eSopenharmony_ci   * Emitting rate, that is, the number of particles produced per second.
65361847f8eSopenharmony_ci   * @type { ?number }
65461847f8eSopenharmony_ci   * @default 5
65561847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
65661847f8eSopenharmony_ci   * @crossplatform
65761847f8eSopenharmony_ci   * @since 10
65861847f8eSopenharmony_ci   */
65961847f8eSopenharmony_ci  /**
66061847f8eSopenharmony_ci   * Emitting rate, that is, the number of particles produced per second.
66161847f8eSopenharmony_ci   * @type { ?number }
66261847f8eSopenharmony_ci   * @default 5
66361847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
66461847f8eSopenharmony_ci   * @crossplatform
66561847f8eSopenharmony_ci   * @atomicservice
66661847f8eSopenharmony_ci   * @since 11
66761847f8eSopenharmony_ci   */
66861847f8eSopenharmony_ci  emitRate?: number;
66961847f8eSopenharmony_ci
67061847f8eSopenharmony_ci  /**
67161847f8eSopenharmony_ci   * Shape of emitter.
67261847f8eSopenharmony_ci   * @type { ?ParticleEmitterShape }
67361847f8eSopenharmony_ci   * @default ParticleEmitterShape.RECTANGLE
67461847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
67561847f8eSopenharmony_ci   * @crossplatform
67661847f8eSopenharmony_ci   * @since 10
67761847f8eSopenharmony_ci   */
67861847f8eSopenharmony_ci  /**
67961847f8eSopenharmony_ci   * Shape of emitter.
68061847f8eSopenharmony_ci   * @type { ?ParticleEmitterShape }
68161847f8eSopenharmony_ci   * @default ParticleEmitterShape.RECTANGLE
68261847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
68361847f8eSopenharmony_ci   * @crossplatform
68461847f8eSopenharmony_ci   * @atomicservice
68561847f8eSopenharmony_ci   * @since 11
68661847f8eSopenharmony_ci   */
68761847f8eSopenharmony_ci  shape?: ParticleEmitterShape;
68861847f8eSopenharmony_ci
68961847f8eSopenharmony_ci  /**
69061847f8eSopenharmony_ci   * Position of emitter.
69161847f8eSopenharmony_ci   * The first element means X-axis location.
69261847f8eSopenharmony_ci   * The second element means the Y-axis location.
69361847f8eSopenharmony_ci   * @type { ?[Dimension, Dimension] }
69461847f8eSopenharmony_ci   * @default [0,0]
69561847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
69661847f8eSopenharmony_ci   * @crossplatform
69761847f8eSopenharmony_ci   * @since 10
69861847f8eSopenharmony_ci   */
69961847f8eSopenharmony_ci  /**
70061847f8eSopenharmony_ci   * Position of emitter.
70161847f8eSopenharmony_ci   * The first element means X-axis location.
70261847f8eSopenharmony_ci   * The second element means the Y-axis location.
70361847f8eSopenharmony_ci   * @type { ?[Dimension, Dimension] }
70461847f8eSopenharmony_ci   * @default [0,0]
70561847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
70661847f8eSopenharmony_ci   * @crossplatform
70761847f8eSopenharmony_ci   * @atomicservice
70861847f8eSopenharmony_ci   * @since 11
70961847f8eSopenharmony_ci   */
71061847f8eSopenharmony_ci  /**
71161847f8eSopenharmony_ci   * Position of emitter.
71261847f8eSopenharmony_ci   * The first element means X-axis location.
71361847f8eSopenharmony_ci   * The second element means the Y-axis location.
71461847f8eSopenharmony_ci   * @type { ?ParticleTuple<Dimension, Dimension> }
71561847f8eSopenharmony_ci   * @default [0,0]
71661847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
71761847f8eSopenharmony_ci   * @crossplatform
71861847f8eSopenharmony_ci   * @atomicservice
71961847f8eSopenharmony_ci   * @since 14
72061847f8eSopenharmony_ci   */
72161847f8eSopenharmony_ci  position?: ParticleTuple<Dimension, Dimension>;
72261847f8eSopenharmony_ci
72361847f8eSopenharmony_ci  /**
72461847f8eSopenharmony_ci   * Size of emitter.
72561847f8eSopenharmony_ci   * The first element means emitter width.
72661847f8eSopenharmony_ci   * The second element means emitter height.
72761847f8eSopenharmony_ci   * @type { ?[Dimension, Dimension] }
72861847f8eSopenharmony_ci   * @default ['100%','100%']
72961847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
73061847f8eSopenharmony_ci   * @crossplatform
73161847f8eSopenharmony_ci   * @since 10
73261847f8eSopenharmony_ci   */
73361847f8eSopenharmony_ci  /**
73461847f8eSopenharmony_ci   * Size of emitter.
73561847f8eSopenharmony_ci   * The first element means emitter width.
73661847f8eSopenharmony_ci   * The second element means emitter height.
73761847f8eSopenharmony_ci   * @type { ?[Dimension, Dimension] }
73861847f8eSopenharmony_ci   * @default ['100%','100%']
73961847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
74061847f8eSopenharmony_ci   * @crossplatform
74161847f8eSopenharmony_ci   * @atomicservice
74261847f8eSopenharmony_ci   * @since 11
74361847f8eSopenharmony_ci   */
74461847f8eSopenharmony_ci  /**
74561847f8eSopenharmony_ci   * Size of emitter.
74661847f8eSopenharmony_ci   * The first element means emitter width.
74761847f8eSopenharmony_ci   * The second element means emitter height.
74861847f8eSopenharmony_ci   * @type { ?ParticleTuple<Dimension, Dimension> }
74961847f8eSopenharmony_ci   * @default ['100%','100%']
75061847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
75161847f8eSopenharmony_ci   * @crossplatform
75261847f8eSopenharmony_ci   * @atomicservice
75361847f8eSopenharmony_ci   * @since 14
75461847f8eSopenharmony_ci   */
75561847f8eSopenharmony_ci  size?: ParticleTuple<Dimension, Dimension>;
75661847f8eSopenharmony_ci}
75761847f8eSopenharmony_ci
75861847f8eSopenharmony_ci/**
75961847f8eSopenharmony_ci * Defines the particle property updater configs.
76061847f8eSopenharmony_ci * @interface ParticlePropertyUpdaterConfigs
76161847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full
76261847f8eSopenharmony_ci * @crossplatform
76361847f8eSopenharmony_ci * @since 10
76461847f8eSopenharmony_ci */
76561847f8eSopenharmony_ci/**
76661847f8eSopenharmony_ci * Defines the particle property updater configs.
76761847f8eSopenharmony_ci * @interface ParticlePropertyUpdaterConfigs
76861847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full
76961847f8eSopenharmony_ci * @crossplatform
77061847f8eSopenharmony_ci * @atomicservice
77161847f8eSopenharmony_ci * @since 11
77261847f8eSopenharmony_ci */
77361847f8eSopenharmony_ciinterface ParticlePropertyUpdaterConfigs<T> {
77461847f8eSopenharmony_ci  /**
77561847f8eSopenharmony_ci   * No effect of particle updater.
77661847f8eSopenharmony_ci   *
77761847f8eSopenharmony_ci   * @type { void }
77861847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
77961847f8eSopenharmony_ci   * @crossplatform
78061847f8eSopenharmony_ci   * @since 10
78161847f8eSopenharmony_ci   */
78261847f8eSopenharmony_ci  /**
78361847f8eSopenharmony_ci   * No effect of particle updater.
78461847f8eSopenharmony_ci   *
78561847f8eSopenharmony_ci   * @type { void }
78661847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
78761847f8eSopenharmony_ci   * @crossplatform
78861847f8eSopenharmony_ci   * @atomicservice
78961847f8eSopenharmony_ci   * @since 11
79061847f8eSopenharmony_ci   */
79161847f8eSopenharmony_ci  [ParticleUpdater.NONE]: void;
79261847f8eSopenharmony_ci
79361847f8eSopenharmony_ci  /**
79461847f8eSopenharmony_ci   * Random effect of particle updater.
79561847f8eSopenharmony_ci   * @type { [T, T] }
79661847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
79761847f8eSopenharmony_ci   * @crossplatform
79861847f8eSopenharmony_ci   * @since 10
79961847f8eSopenharmony_ci   */
80061847f8eSopenharmony_ci  /**
80161847f8eSopenharmony_ci   * Random effect of particle updater.
80261847f8eSopenharmony_ci   * @type { [T, T] }
80361847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
80461847f8eSopenharmony_ci   * @crossplatform
80561847f8eSopenharmony_ci   * @atomicservice
80661847f8eSopenharmony_ci   * @since 11
80761847f8eSopenharmony_ci   */
80861847f8eSopenharmony_ci  /**
80961847f8eSopenharmony_ci   * Random effect of particle updater.
81061847f8eSopenharmony_ci   * @type { ParticleTuple<T, T> }
81161847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
81261847f8eSopenharmony_ci   * @crossplatform
81361847f8eSopenharmony_ci   * @atomicservice
81461847f8eSopenharmony_ci   * @since 14
81561847f8eSopenharmony_ci   */
81661847f8eSopenharmony_ci  [ParticleUpdater.RANDOM]: ParticleTuple<T, T>;
81761847f8eSopenharmony_ci
81861847f8eSopenharmony_ci  /**
81961847f8eSopenharmony_ci   * Curve effect of particle updater.
82061847f8eSopenharmony_ci   * @type { Array<ParticlePropertyAnimation<T>> }
82161847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
82261847f8eSopenharmony_ci   * @crossplatform
82361847f8eSopenharmony_ci   * @since 10
82461847f8eSopenharmony_ci   */
82561847f8eSopenharmony_ci  /**
82661847f8eSopenharmony_ci   * Curve effect of particle updater.
82761847f8eSopenharmony_ci   * @type { Array<ParticlePropertyAnimation<T>> }
82861847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
82961847f8eSopenharmony_ci   * @crossplatform
83061847f8eSopenharmony_ci   * @atomicservice
83161847f8eSopenharmony_ci   * @since 11
83261847f8eSopenharmony_ci   */
83361847f8eSopenharmony_ci  [ParticleUpdater.CURVE]: Array<ParticlePropertyAnimation<T>>;
83461847f8eSopenharmony_ci}
83561847f8eSopenharmony_ci
83661847f8eSopenharmony_ci/**
83761847f8eSopenharmony_ci * Defines the particle updater options.
83861847f8eSopenharmony_ci *
83961847f8eSopenharmony_ci * @typedef ParticleUpdaterOptions
84061847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full
84161847f8eSopenharmony_ci * @crossplatform
84261847f8eSopenharmony_ci * @atomicservice
84361847f8eSopenharmony_ci * @since 14
84461847f8eSopenharmony_ci */
84561847f8eSopenharmony_ciinterface ParticleUpdaterOptions<TYPE, UPDATER extends ParticleUpdater> {
84661847f8eSopenharmony_ci  /**
84761847f8eSopenharmony_ci   * Particle updater type.
84861847f8eSopenharmony_ci   * @type { UPDATER }
84961847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
85061847f8eSopenharmony_ci   * @crossplatform
85161847f8eSopenharmony_ci   * @since 10
85261847f8eSopenharmony_ci   */
85361847f8eSopenharmony_ci  /**
85461847f8eSopenharmony_ci   * Particle updater type.
85561847f8eSopenharmony_ci   * @type { UPDATER }
85661847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
85761847f8eSopenharmony_ci   * @crossplatform
85861847f8eSopenharmony_ci   * @atomicservice
85961847f8eSopenharmony_ci   * @since 11
86061847f8eSopenharmony_ci   */
86161847f8eSopenharmony_ci  type: UPDATER;
86261847f8eSopenharmony_ci
86361847f8eSopenharmony_ci  /**
86461847f8eSopenharmony_ci   * Particle updater configuration.
86561847f8eSopenharmony_ci   * @type { ParticlePropertyUpdaterConfigs<TYPE>[UPDATER] }
86661847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
86761847f8eSopenharmony_ci   * @crossplatform
86861847f8eSopenharmony_ci   * @since 10
86961847f8eSopenharmony_ci   */
87061847f8eSopenharmony_ci  /**
87161847f8eSopenharmony_ci   * Particle updater configuration.
87261847f8eSopenharmony_ci   * @type { ParticlePropertyUpdaterConfigs<TYPE>[UPDATER] }
87361847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
87461847f8eSopenharmony_ci   * @crossplatform
87561847f8eSopenharmony_ci   * @atomicservice
87661847f8eSopenharmony_ci   * @since 11
87761847f8eSopenharmony_ci   */
87861847f8eSopenharmony_ci  config: ParticlePropertyUpdaterConfigs<TYPE>[UPDATER];
87961847f8eSopenharmony_ci}
88061847f8eSopenharmony_ci
88161847f8eSopenharmony_ci/**
88261847f8eSopenharmony_ci * Defines the particle color options.
88361847f8eSopenharmony_ci *
88461847f8eSopenharmony_ci * @typedef ParticleColorOptions
88561847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full
88661847f8eSopenharmony_ci * @crossplatform
88761847f8eSopenharmony_ci * @atomicservice
88861847f8eSopenharmony_ci * @since 14
88961847f8eSopenharmony_ci */
89061847f8eSopenharmony_ciinterface ParticleColorOptions {
89161847f8eSopenharmony_ci  /**
89261847f8eSopenharmony_ci   * Red component of particle color.
89361847f8eSopenharmony_ci   * @type { ParticleTuple<number, number> }
89461847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
89561847f8eSopenharmony_ci   * @crossplatform
89661847f8eSopenharmony_ci   * @since 10
89761847f8eSopenharmony_ci   */
89861847f8eSopenharmony_ci  /**
89961847f8eSopenharmony_ci   * Red component of particle color.
90061847f8eSopenharmony_ci   * @type { ParticleTuple<number, number> }
90161847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
90261847f8eSopenharmony_ci   * @crossplatform
90361847f8eSopenharmony_ci   * @atomicservice
90461847f8eSopenharmony_ci   * @since 11
90561847f8eSopenharmony_ci   */
90661847f8eSopenharmony_ci  r: ParticleTuple<number, number>;
90761847f8eSopenharmony_ci
90861847f8eSopenharmony_ci  /**
90961847f8eSopenharmony_ci   * Green component of particle color.
91061847f8eSopenharmony_ci   * @type { ParticleTuple<number, number> }
91161847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
91261847f8eSopenharmony_ci   * @crossplatform
91361847f8eSopenharmony_ci   * @since 10
91461847f8eSopenharmony_ci   */
91561847f8eSopenharmony_ci  /**
91661847f8eSopenharmony_ci   * Green component of particle color.
91761847f8eSopenharmony_ci   * @type { ParticleTuple<number, number> }
91861847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
91961847f8eSopenharmony_ci   * @crossplatform
92061847f8eSopenharmony_ci   * @atomicservice
92161847f8eSopenharmony_ci   * @since 11
92261847f8eSopenharmony_ci   */
92361847f8eSopenharmony_ci  g: ParticleTuple<number, number>;
92461847f8eSopenharmony_ci
92561847f8eSopenharmony_ci  /**
92661847f8eSopenharmony_ci   * Blue component of particle color.
92761847f8eSopenharmony_ci   * @type { ParticleTuple<number, number> }
92861847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
92961847f8eSopenharmony_ci   * @crossplatform
93061847f8eSopenharmony_ci   * @since 10
93161847f8eSopenharmony_ci   */
93261847f8eSopenharmony_ci  /**
93361847f8eSopenharmony_ci   * Blue component of particle color.
93461847f8eSopenharmony_ci   * @type { ParticleTuple<number, number> }
93561847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
93661847f8eSopenharmony_ci   * @crossplatform
93761847f8eSopenharmony_ci   * @atomicservice
93861847f8eSopenharmony_ci   * @since 11
93961847f8eSopenharmony_ci   */
94061847f8eSopenharmony_ci  b: ParticleTuple<number, number>;
94161847f8eSopenharmony_ci
94261847f8eSopenharmony_ci  /**
94361847f8eSopenharmony_ci   * Opacity component of particle color.
94461847f8eSopenharmony_ci   * @type { ParticleTuple<number, number> }
94561847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
94661847f8eSopenharmony_ci   * @crossplatform
94761847f8eSopenharmony_ci   * @since 10
94861847f8eSopenharmony_ci   */
94961847f8eSopenharmony_ci  /**
95061847f8eSopenharmony_ci   * Opacity component of particle color.
95161847f8eSopenharmony_ci   * @type { ParticleTuple<number, number> }
95261847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
95361847f8eSopenharmony_ci   * @crossplatform
95461847f8eSopenharmony_ci   * @atomicservice
95561847f8eSopenharmony_ci   * @since 11
95661847f8eSopenharmony_ci   */
95761847f8eSopenharmony_ci  a: ParticleTuple<number, number>;
95861847f8eSopenharmony_ci}
95961847f8eSopenharmony_ci
96061847f8eSopenharmony_ci/**
96161847f8eSopenharmony_ci * Defines the particle color updater options.
96261847f8eSopenharmony_ci *
96361847f8eSopenharmony_ci * @typedef ParticleColorUpdaterOptions
96461847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full
96561847f8eSopenharmony_ci * @crossplatform
96661847f8eSopenharmony_ci * @atomicservice
96761847f8eSopenharmony_ci * @since 14
96861847f8eSopenharmony_ci */
96961847f8eSopenharmony_ciinterface ParticleColorUpdaterOptions<UPDATER extends ParticleUpdater> {
97061847f8eSopenharmony_ci  /**
97161847f8eSopenharmony_ci   * Color updater.
97261847f8eSopenharmony_ci   * @type { UPDATER }
97361847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
97461847f8eSopenharmony_ci   * @crossplatform
97561847f8eSopenharmony_ci   * @since 10
97661847f8eSopenharmony_ci   */
97761847f8eSopenharmony_ci  /**
97861847f8eSopenharmony_ci   * Color updater.
97961847f8eSopenharmony_ci   * @type { UPDATER }
98061847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
98161847f8eSopenharmony_ci   * @crossplatform
98261847f8eSopenharmony_ci   * @atomicservice
98361847f8eSopenharmony_ci   * @since 11
98461847f8eSopenharmony_ci   */
98561847f8eSopenharmony_ci  type: UPDATER;
98661847f8eSopenharmony_ci
98761847f8eSopenharmony_ci  /**
98861847f8eSopenharmony_ci   * Color updater configuration.
98961847f8eSopenharmony_ci   * @type { ParticleColorPropertyUpdaterConfigs[UPDATER] }
99061847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
99161847f8eSopenharmony_ci   * @crossplatform
99261847f8eSopenharmony_ci   * @since 10
99361847f8eSopenharmony_ci   */
99461847f8eSopenharmony_ci  /**
99561847f8eSopenharmony_ci   * Color updater configuration.
99661847f8eSopenharmony_ci   * @type { ParticleColorPropertyUpdaterConfigs[UPDATER] }
99761847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
99861847f8eSopenharmony_ci   * @crossplatform
99961847f8eSopenharmony_ci   * @atomicservice
100061847f8eSopenharmony_ci   * @since 11
100161847f8eSopenharmony_ci   */
100261847f8eSopenharmony_ci  config: ParticleColorPropertyUpdaterConfigs[UPDATER];
100361847f8eSopenharmony_ci}
100461847f8eSopenharmony_ci
100561847f8eSopenharmony_ci/**
100661847f8eSopenharmony_ci * Defines the particle property Options.
100761847f8eSopenharmony_ci * @interface ParticlePropertyOptions
100861847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full
100961847f8eSopenharmony_ci * @crossplatform
101061847f8eSopenharmony_ci * @since 10
101161847f8eSopenharmony_ci */
101261847f8eSopenharmony_ci/**
101361847f8eSopenharmony_ci * Defines the particle property Options.
101461847f8eSopenharmony_ci * @interface ParticlePropertyOptions
101561847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full
101661847f8eSopenharmony_ci * @crossplatform
101761847f8eSopenharmony_ci * @atomicservice
101861847f8eSopenharmony_ci * @since 11
101961847f8eSopenharmony_ci */
102061847f8eSopenharmony_ciinterface ParticlePropertyOptions<TYPE, UPDATER extends ParticleUpdater> {
102161847f8eSopenharmony_ci  /**
102261847f8eSopenharmony_ci   * Initial range, within which the initial value are randomly generated.
102361847f8eSopenharmony_ci   * @type { [TYPE, TYPE] }
102461847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
102561847f8eSopenharmony_ci   * @crossplatform
102661847f8eSopenharmony_ci   * @since 10
102761847f8eSopenharmony_ci   */
102861847f8eSopenharmony_ci  /**
102961847f8eSopenharmony_ci   * Initial range, within which the initial value are randomly generated.
103061847f8eSopenharmony_ci   * @type { [TYPE, TYPE] }
103161847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
103261847f8eSopenharmony_ci   * @crossplatform
103361847f8eSopenharmony_ci   * @atomicservice
103461847f8eSopenharmony_ci   * @since 11
103561847f8eSopenharmony_ci   */
103661847f8eSopenharmony_ci  /**
103761847f8eSopenharmony_ci   * Initial range, within which the initial value are randomly generated.
103861847f8eSopenharmony_ci   * @type { ParticleTuple<TYPE, TYPE> }
103961847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
104061847f8eSopenharmony_ci   * @crossplatform
104161847f8eSopenharmony_ci   * @atomicservice
104261847f8eSopenharmony_ci   * @since 14
104361847f8eSopenharmony_ci   */
104461847f8eSopenharmony_ci  range: ParticleTuple<TYPE, TYPE>;
104561847f8eSopenharmony_ci
104661847f8eSopenharmony_ci  /**
104761847f8eSopenharmony_ci   * Particle property updater.
104861847f8eSopenharmony_ci   * @type { ?object }
104961847f8eSopenharmony_ci   * @default  {type:UPDATER.NONE;config:ParticlePropertyUpdaterConfigs<UPDATER.NONE>[UPDATER.NONE]}
105061847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
105161847f8eSopenharmony_ci   * @crossplatform
105261847f8eSopenharmony_ci   * @since 10
105361847f8eSopenharmony_ci   */
105461847f8eSopenharmony_ci  /**
105561847f8eSopenharmony_ci   * Particle property updater.
105661847f8eSopenharmony_ci   * @type { ?object }
105761847f8eSopenharmony_ci   * @default  {type:UPDATER.NONE;config:ParticlePropertyUpdaterConfigs<UPDATER.NONE>[UPDATER.NONE]}
105861847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
105961847f8eSopenharmony_ci   * @crossplatform
106061847f8eSopenharmony_ci   * @atomicservice
106161847f8eSopenharmony_ci   * @since 11
106261847f8eSopenharmony_ci   */
106361847f8eSopenharmony_ci  /**
106461847f8eSopenharmony_ci   * Particle property updater.
106561847f8eSopenharmony_ci   * @type { ?ParticleUpdaterOptions<TYPE, UPDATER> }
106661847f8eSopenharmony_ci   * @default  {type:UPDATER.NONE;config:ParticlePropertyUpdaterConfigs<UPDATER.NONE>[UPDATER.NONE]}
106761847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
106861847f8eSopenharmony_ci   * @crossplatform
106961847f8eSopenharmony_ci   * @atomicservice
107061847f8eSopenharmony_ci   * @since 14
107161847f8eSopenharmony_ci   */
107261847f8eSopenharmony_ci  updater?: ParticleUpdaterOptions<TYPE, UPDATER>;
107361847f8eSopenharmony_ci}
107461847f8eSopenharmony_ci
107561847f8eSopenharmony_ci/**
107661847f8eSopenharmony_ci * Defines the particle color property updater configs.
107761847f8eSopenharmony_ci * @interface ParticleColorPropertyUpdaterConfigs
107861847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full
107961847f8eSopenharmony_ci * @crossplatform
108061847f8eSopenharmony_ci * @since 10
108161847f8eSopenharmony_ci */
108261847f8eSopenharmony_ci/**
108361847f8eSopenharmony_ci * Defines the particle color property updater configs.
108461847f8eSopenharmony_ci * @interface ParticleColorPropertyUpdaterConfigs
108561847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full
108661847f8eSopenharmony_ci * @crossplatform
108761847f8eSopenharmony_ci * @atomicservice
108861847f8eSopenharmony_ci * @since 11
108961847f8eSopenharmony_ci */
109061847f8eSopenharmony_ciinterface ParticleColorPropertyUpdaterConfigs {
109161847f8eSopenharmony_ci  /**
109261847f8eSopenharmony_ci   * No effect of particle color property updater.
109361847f8eSopenharmony_ci   *
109461847f8eSopenharmony_ci   * @type { void }
109561847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
109661847f8eSopenharmony_ci   * @crossplatform
109761847f8eSopenharmony_ci   * @since 10
109861847f8eSopenharmony_ci   */
109961847f8eSopenharmony_ci  /**
110061847f8eSopenharmony_ci   * No effect of particle color property updater.
110161847f8eSopenharmony_ci   *
110261847f8eSopenharmony_ci   * @type { void }
110361847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
110461847f8eSopenharmony_ci   * @crossplatform
110561847f8eSopenharmony_ci   * @atomicservice
110661847f8eSopenharmony_ci   * @since 11
110761847f8eSopenharmony_ci   */
110861847f8eSopenharmony_ci  [ParticleUpdater.NONE]: void;
110961847f8eSopenharmony_ci
111061847f8eSopenharmony_ci  /**
111161847f8eSopenharmony_ci   * Random effect of particle color property updater.
111261847f8eSopenharmony_ci   * @type { object }
111361847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
111461847f8eSopenharmony_ci   * @crossplatform
111561847f8eSopenharmony_ci   * @since 10
111661847f8eSopenharmony_ci   */
111761847f8eSopenharmony_ci  /**
111861847f8eSopenharmony_ci   * Random effect of particle color property updater.
111961847f8eSopenharmony_ci   * @type { object }
112061847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
112161847f8eSopenharmony_ci   * @crossplatform
112261847f8eSopenharmony_ci   * @atomicservice
112361847f8eSopenharmony_ci   * @since 11
112461847f8eSopenharmony_ci   */
112561847f8eSopenharmony_ci  /**
112661847f8eSopenharmony_ci   * Random effect of particle color property updater.
112761847f8eSopenharmony_ci   * @type { ParticleColorOptions }
112861847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
112961847f8eSopenharmony_ci   * @crossplatform
113061847f8eSopenharmony_ci   * @atomicservice
113161847f8eSopenharmony_ci   * @since 14
113261847f8eSopenharmony_ci   */
113361847f8eSopenharmony_ci  [ParticleUpdater.RANDOM]: ParticleColorOptions;
113461847f8eSopenharmony_ci
113561847f8eSopenharmony_ci  /**
113661847f8eSopenharmony_ci   * Curve effect of particle color property updater.
113761847f8eSopenharmony_ci   * 
113861847f8eSopenharmony_ci   * @type { Array<ParticlePropertyAnimation<ResourceColor>> }
113961847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
114061847f8eSopenharmony_ci   * @crossplatform
114161847f8eSopenharmony_ci   * @since 10
114261847f8eSopenharmony_ci   */
114361847f8eSopenharmony_ci  /**
114461847f8eSopenharmony_ci   * Curve effect of particle color property updater.
114561847f8eSopenharmony_ci   * 
114661847f8eSopenharmony_ci   * @type { Array<ParticlePropertyAnimation<ResourceColor>> }
114761847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
114861847f8eSopenharmony_ci   * @crossplatform
114961847f8eSopenharmony_ci   * @atomicservice
115061847f8eSopenharmony_ci   * @since 11
115161847f8eSopenharmony_ci   */
115261847f8eSopenharmony_ci  [ParticleUpdater.CURVE]: Array<ParticlePropertyAnimation<ResourceColor>>;
115361847f8eSopenharmony_ci}
115461847f8eSopenharmony_ci
115561847f8eSopenharmony_ci/**
115661847f8eSopenharmony_ci * Defines the particle color property updater configs which can support generics.
115761847f8eSopenharmony_ci * @interface ParticleColorPropertyOptions
115861847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full
115961847f8eSopenharmony_ci * @crossplatform
116061847f8eSopenharmony_ci * @since 10
116161847f8eSopenharmony_ci */
116261847f8eSopenharmony_ci/**
116361847f8eSopenharmony_ci * Defines the particle color property updater configs which can support generics.
116461847f8eSopenharmony_ci * @interface ParticleColorPropertyOptions
116561847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full
116661847f8eSopenharmony_ci * @crossplatform
116761847f8eSopenharmony_ci * @atomicservice
116861847f8eSopenharmony_ci * @since 11
116961847f8eSopenharmony_ci */
117061847f8eSopenharmony_ciinterface ParticleColorPropertyOptions<UPDATER extends ParticleUpdater> {
117161847f8eSopenharmony_ci  /**
117261847f8eSopenharmony_ci   * Initial color range, within which the initial color is randomly generated.
117361847f8eSopenharmony_ci   * @type { [ResourceColor, ResourceColor] }
117461847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
117561847f8eSopenharmony_ci   * @crossplatform
117661847f8eSopenharmony_ci   * @since 10
117761847f8eSopenharmony_ci   */
117861847f8eSopenharmony_ci  /**
117961847f8eSopenharmony_ci   * Initial color range, within which the initial color is randomly generated.
118061847f8eSopenharmony_ci   * @type { [ResourceColor, ResourceColor] }
118161847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
118261847f8eSopenharmony_ci   * @crossplatform
118361847f8eSopenharmony_ci   * @atomicservice
118461847f8eSopenharmony_ci   * @since 11
118561847f8eSopenharmony_ci   */
118661847f8eSopenharmony_ci  /**
118761847f8eSopenharmony_ci   * Initial color range, within which the initial color is randomly generated.
118861847f8eSopenharmony_ci   * @type { ParticleTuple<ResourceColor, ResourceColor> }
118961847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
119061847f8eSopenharmony_ci   * @crossplatform
119161847f8eSopenharmony_ci   * @atomicservice
119261847f8eSopenharmony_ci   * @since 14
119361847f8eSopenharmony_ci   */
119461847f8eSopenharmony_ci  range: ParticleTuple<ResourceColor, ResourceColor>;
119561847f8eSopenharmony_ci
119661847f8eSopenharmony_ci  /**
119761847f8eSopenharmony_ci   * Distribution type of particle color.
119861847f8eSopenharmony_ci   * @type { ?DistributionType }
119961847f8eSopenharmony_ci   * @default DistributionType.UNIFORM
120061847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
120161847f8eSopenharmony_ci   * @crossplatform
120261847f8eSopenharmony_ci   * @atomicservice
120361847f8eSopenharmony_ci   * @since 12
120461847f8eSopenharmony_ci   */
120561847f8eSopenharmony_ci  distributionType?: DistributionType;
120661847f8eSopenharmony_ci
120761847f8eSopenharmony_ci  /**
120861847f8eSopenharmony_ci   * Particle color property updater.
120961847f8eSopenharmony_ci   * @type { ?object }
121061847f8eSopenharmony_ci   * @default {type:UPDATER.NONE;config:ParticleColorPropertyUpdaterConfigs[UPDATER.NONE]}
121161847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
121261847f8eSopenharmony_ci   * @crossplatform
121361847f8eSopenharmony_ci   * @since 10
121461847f8eSopenharmony_ci   */
121561847f8eSopenharmony_ci  /**
121661847f8eSopenharmony_ci   * Particle color property updater.
121761847f8eSopenharmony_ci   * @type { ?object }
121861847f8eSopenharmony_ci   * @default {type:UPDATER.NONE;config:ParticleColorPropertyUpdaterConfigs[UPDATER.NONE]}
121961847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
122061847f8eSopenharmony_ci   * @crossplatform
122161847f8eSopenharmony_ci   * @atomicservice
122261847f8eSopenharmony_ci   * @since 11
122361847f8eSopenharmony_ci   */
122461847f8eSopenharmony_ci  /**
122561847f8eSopenharmony_ci   * Particle color property updater.
122661847f8eSopenharmony_ci   * @type { ?ParticleColorUpdaterOptions<UPDATER> }
122761847f8eSopenharmony_ci   * @default {type:UPDATER.NONE;config:ParticleColorPropertyUpdaterConfigs[UPDATER.NONE]}
122861847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
122961847f8eSopenharmony_ci   * @crossplatform
123061847f8eSopenharmony_ci   * @atomicservice
123161847f8eSopenharmony_ci   * @since 14
123261847f8eSopenharmony_ci   */
123361847f8eSopenharmony_ci  updater?: ParticleColorUpdaterOptions<UPDATER>;
123461847f8eSopenharmony_ci}
123561847f8eSopenharmony_ci
123661847f8eSopenharmony_ci/**
123761847f8eSopenharmony_ci * Defines the particle property lifecycle.
123861847f8eSopenharmony_ci * @interface ParticlePropertyAnimation
123961847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full
124061847f8eSopenharmony_ci * @crossplatform
124161847f8eSopenharmony_ci * @since 10
124261847f8eSopenharmony_ci */
124361847f8eSopenharmony_ci/**
124461847f8eSopenharmony_ci * Defines the particle property lifecycle.
124561847f8eSopenharmony_ci * @interface ParticlePropertyAnimation
124661847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full
124761847f8eSopenharmony_ci * @crossplatform
124861847f8eSopenharmony_ci * @atomicservice
124961847f8eSopenharmony_ci * @since 11
125061847f8eSopenharmony_ci */
125161847f8eSopenharmony_ciinterface ParticlePropertyAnimation<T> {
125261847f8eSopenharmony_ci  /**
125361847f8eSopenharmony_ci   * Start position of the particle animation. 
125461847f8eSopenharmony_ci   * @type { T }
125561847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
125661847f8eSopenharmony_ci   * @crossplatform
125761847f8eSopenharmony_ci   * @since 10
125861847f8eSopenharmony_ci   */
125961847f8eSopenharmony_ci  /**
126061847f8eSopenharmony_ci   * Start position of the particle animation. 
126161847f8eSopenharmony_ci   * @type { T }
126261847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
126361847f8eSopenharmony_ci   * @crossplatform
126461847f8eSopenharmony_ci   * @atomicservice
126561847f8eSopenharmony_ci   * @since 11
126661847f8eSopenharmony_ci   */
126761847f8eSopenharmony_ci  from: T;
126861847f8eSopenharmony_ci
126961847f8eSopenharmony_ci  /**
127061847f8eSopenharmony_ci   * End position of the particle animation.
127161847f8eSopenharmony_ci   * @type { T }
127261847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
127361847f8eSopenharmony_ci   * @crossplatform
127461847f8eSopenharmony_ci   * @since 10
127561847f8eSopenharmony_ci   */
127661847f8eSopenharmony_ci  /**
127761847f8eSopenharmony_ci   * End position of the particle animation.
127861847f8eSopenharmony_ci   * @type { T }
127961847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
128061847f8eSopenharmony_ci   * @crossplatform
128161847f8eSopenharmony_ci   * @atomicservice
128261847f8eSopenharmony_ci   * @since 11
128361847f8eSopenharmony_ci   */
128461847f8eSopenharmony_ci  to: T;
128561847f8eSopenharmony_ci
128661847f8eSopenharmony_ci  /**
128761847f8eSopenharmony_ci   * Start millis of the particle animation.
128861847f8eSopenharmony_ci   * @type { number }
128961847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
129061847f8eSopenharmony_ci   * @crossplatform
129161847f8eSopenharmony_ci   * @since 10
129261847f8eSopenharmony_ci   */
129361847f8eSopenharmony_ci  /**
129461847f8eSopenharmony_ci   * Start millis of the particle animation.
129561847f8eSopenharmony_ci   * @type { number }
129661847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
129761847f8eSopenharmony_ci   * @crossplatform
129861847f8eSopenharmony_ci   * @atomicservice
129961847f8eSopenharmony_ci   * @since 11
130061847f8eSopenharmony_ci   */
130161847f8eSopenharmony_ci  startMillis: number;
130261847f8eSopenharmony_ci
130361847f8eSopenharmony_ci  /**
130461847f8eSopenharmony_ci   * End millis of the particle animation. 
130561847f8eSopenharmony_ci   * @type { number }
130661847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
130761847f8eSopenharmony_ci   * @crossplatform
130861847f8eSopenharmony_ci   * @since 10
130961847f8eSopenharmony_ci   */
131061847f8eSopenharmony_ci  /**
131161847f8eSopenharmony_ci   * End millis of the particle animation. 
131261847f8eSopenharmony_ci   * @type { number }
131361847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
131461847f8eSopenharmony_ci   * @crossplatform
131561847f8eSopenharmony_ci   * @atomicservice
131661847f8eSopenharmony_ci   * @since 11
131761847f8eSopenharmony_ci   */
131861847f8eSopenharmony_ci  endMillis: number;
131961847f8eSopenharmony_ci
132061847f8eSopenharmony_ci  /**
132161847f8eSopenharmony_ci   * Curve of the particle animation.
132261847f8eSopenharmony_ci   * @type { ?(Curve | ICurve) }
132361847f8eSopenharmony_ci   * @default Curve.Linear
132461847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
132561847f8eSopenharmony_ci   * @crossplatform
132661847f8eSopenharmony_ci   * @since 10
132761847f8eSopenharmony_ci   */
132861847f8eSopenharmony_ci  /**
132961847f8eSopenharmony_ci   * Curve of the particle animation.
133061847f8eSopenharmony_ci   * @type { ?(Curve | ICurve) }
133161847f8eSopenharmony_ci   * @default Curve.Linear
133261847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
133361847f8eSopenharmony_ci   * @crossplatform
133461847f8eSopenharmony_ci   * @atomicservice
133561847f8eSopenharmony_ci   * @since 11
133661847f8eSopenharmony_ci   */
133761847f8eSopenharmony_ci  curve?: Curve | ICurve;
133861847f8eSopenharmony_ci}
133961847f8eSopenharmony_ci
134061847f8eSopenharmony_ci/**
134161847f8eSopenharmony_ci * Defines the particle array.
134261847f8eSopenharmony_ci *
134361847f8eSopenharmony_ci * @typedef Particles
134461847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full
134561847f8eSopenharmony_ci * @crossplatform
134661847f8eSopenharmony_ci * @atomicservice
134761847f8eSopenharmony_ci * @since 14
134861847f8eSopenharmony_ci */
134961847f8eSopenharmony_ciinterface Particles<
135061847f8eSopenharmony_ci  PARTICLE extends ParticleType,
135161847f8eSopenharmony_ci  COLOR_UPDATER extends ParticleUpdater,
135261847f8eSopenharmony_ci  OPACITY_UPDATER extends ParticleUpdater,
135361847f8eSopenharmony_ci  SCALE_UPDATER extends ParticleUpdater,
135461847f8eSopenharmony_ci  ACC_SPEED_UPDATER extends ParticleUpdater,
135561847f8eSopenharmony_ci  ACC_ANGLE_UPDATER extends ParticleUpdater,
135661847f8eSopenharmony_ci  SPIN_UPDATER extends ParticleUpdater
135761847f8eSopenharmony_ci> {
135861847f8eSopenharmony_ci  /**
135961847f8eSopenharmony_ci   * Array of particles.
136061847f8eSopenharmony_ci   * @type { Array<ParticleOptions<PARTICLE, COLOR_UPDATER, OPACITY_UPDATER, SCALE_UPDATER, ACC_SPEED_UPDATER, ACC_ANGLE_UPDATER, SPIN_UPDATER>> }
136161847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
136261847f8eSopenharmony_ci   * @crossplatform
136361847f8eSopenharmony_ci   * @since 10
136461847f8eSopenharmony_ci   */
136561847f8eSopenharmony_ci  /**
136661847f8eSopenharmony_ci   * Array of particles.
136761847f8eSopenharmony_ci   * @type { Array<ParticleOptions<PARTICLE, COLOR_UPDATER, OPACITY_UPDATER, SCALE_UPDATER, ACC_SPEED_UPDATER, ACC_ANGLE_UPDATER, SPIN_UPDATER>> }
136861847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
136961847f8eSopenharmony_ci   * @crossplatform
137061847f8eSopenharmony_ci   * @atomicservice
137161847f8eSopenharmony_ci   * @since 11
137261847f8eSopenharmony_ci   */
137361847f8eSopenharmony_ci  particles: Array<
137461847f8eSopenharmony_ci    ParticleOptions<
137561847f8eSopenharmony_ci      PARTICLE,
137661847f8eSopenharmony_ci      COLOR_UPDATER,
137761847f8eSopenharmony_ci      OPACITY_UPDATER,
137861847f8eSopenharmony_ci      SCALE_UPDATER,
137961847f8eSopenharmony_ci      ACC_SPEED_UPDATER,
138061847f8eSopenharmony_ci      ACC_ANGLE_UPDATER,
138161847f8eSopenharmony_ci      SPIN_UPDATER
138261847f8eSopenharmony_ci    >
138361847f8eSopenharmony_ci  >;
138461847f8eSopenharmony_ci}
138561847f8eSopenharmony_ci
138661847f8eSopenharmony_ci/**
138761847f8eSopenharmony_ci * Defines the particle Interface.
138861847f8eSopenharmony_ci * @interface ParticleInterface
138961847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full
139061847f8eSopenharmony_ci * @crossplatform
139161847f8eSopenharmony_ci * @since 10
139261847f8eSopenharmony_ci */
139361847f8eSopenharmony_ci/**
139461847f8eSopenharmony_ci * Defines the particle Interface.
139561847f8eSopenharmony_ci * @interface ParticleInterface
139661847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full
139761847f8eSopenharmony_ci * @crossplatform
139861847f8eSopenharmony_ci * @atomicservice
139961847f8eSopenharmony_ci * @since 11
140061847f8eSopenharmony_ci */
140161847f8eSopenharmony_ciinterface ParticleInterface {
140261847f8eSopenharmony_ci  /**
140361847f8eSopenharmony_ci   * create a particle array.
140461847f8eSopenharmony_ci   * @param { object } value - Particle value
140561847f8eSopenharmony_ci   * particles - list of ParticleOptions.
140661847f8eSopenharmony_ci   * @returns { ParticleAttribute } Returns the particle attribute.
140761847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
140861847f8eSopenharmony_ci   * @crossplatform
140961847f8eSopenharmony_ci   * @since 10
141061847f8eSopenharmony_ci   */
141161847f8eSopenharmony_ci  /**
141261847f8eSopenharmony_ci   * create a particle array.
141361847f8eSopenharmony_ci   * @param { object } value - Particle value
141461847f8eSopenharmony_ci   * particles - list of ParticleOptions.
141561847f8eSopenharmony_ci   * @returns { ParticleAttribute } Returns the particle attribute.
141661847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
141761847f8eSopenharmony_ci   * @crossplatform
141861847f8eSopenharmony_ci   * @atomicservice
141961847f8eSopenharmony_ci   * @since 11
142061847f8eSopenharmony_ci   */
142161847f8eSopenharmony_ci  /**
142261847f8eSopenharmony_ci   * create a particle array.
142361847f8eSopenharmony_ci   * @param { Particles<PARTICLE, COLOR_UPDATER, OPACITY_UPDATER, SCALE_UPDATER, ACC_SPEED_UPDATER, ACC_ANGLE_UPDATER, SPIN_UPDATER> } particles - Array of particles.
142461847f8eSopenharmony_ci   * @returns { ParticleAttribute } Returns the particle attribute.
142561847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
142661847f8eSopenharmony_ci   * @crossplatform
142761847f8eSopenharmony_ci   * @atomicservice
142861847f8eSopenharmony_ci   * @since 14
142961847f8eSopenharmony_ci   */
143061847f8eSopenharmony_ci  <
143161847f8eSopenharmony_ci    PARTICLE extends ParticleType,
143261847f8eSopenharmony_ci    COLOR_UPDATER extends ParticleUpdater,
143361847f8eSopenharmony_ci    OPACITY_UPDATER extends ParticleUpdater,
143461847f8eSopenharmony_ci    SCALE_UPDATER extends ParticleUpdater,
143561847f8eSopenharmony_ci    ACC_SPEED_UPDATER extends ParticleUpdater,
143661847f8eSopenharmony_ci    ACC_ANGLE_UPDATER extends ParticleUpdater,
143761847f8eSopenharmony_ci    SPIN_UPDATER extends ParticleUpdater
143861847f8eSopenharmony_ci  >(particles: Particles<
143961847f8eSopenharmony_ci      PARTICLE,
144061847f8eSopenharmony_ci      COLOR_UPDATER,
144161847f8eSopenharmony_ci      OPACITY_UPDATER,
144261847f8eSopenharmony_ci      SCALE_UPDATER,
144361847f8eSopenharmony_ci      ACC_SPEED_UPDATER,
144461847f8eSopenharmony_ci      ACC_ANGLE_UPDATER,
144561847f8eSopenharmony_ci      SPIN_UPDATER
144661847f8eSopenharmony_ci    >): ParticleAttribute;
144761847f8eSopenharmony_ci}
144861847f8eSopenharmony_ci
144961847f8eSopenharmony_ci/**
145061847f8eSopenharmony_ci * Enumerates the particle types.
145161847f8eSopenharmony_ci * @enum { string }
145261847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full
145361847f8eSopenharmony_ci * @crossplatform
145461847f8eSopenharmony_ci * @since 10
145561847f8eSopenharmony_ci */
145661847f8eSopenharmony_ci/**
145761847f8eSopenharmony_ci * Enumerates the particle types.
145861847f8eSopenharmony_ci * @enum { string }
145961847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full
146061847f8eSopenharmony_ci * @crossplatform
146161847f8eSopenharmony_ci * @atomicservice
146261847f8eSopenharmony_ci * @since 11
146361847f8eSopenharmony_ci */
146461847f8eSopenharmony_cideclare enum ParticleType {
146561847f8eSopenharmony_ci  /**
146661847f8eSopenharmony_ci   * Point-like particle.
146761847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
146861847f8eSopenharmony_ci   * @crossplatform
146961847f8eSopenharmony_ci   * @since 10
147061847f8eSopenharmony_ci   */
147161847f8eSopenharmony_ci  /**
147261847f8eSopenharmony_ci   * Point-like particle.
147361847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
147461847f8eSopenharmony_ci   * @crossplatform
147561847f8eSopenharmony_ci   * @atomicservice
147661847f8eSopenharmony_ci   * @since 11
147761847f8eSopenharmony_ci   */
147861847f8eSopenharmony_ci  POINT = 'point',
147961847f8eSopenharmony_ci
148061847f8eSopenharmony_ci  /**
148161847f8eSopenharmony_ci   * Image-like particle.
148261847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
148361847f8eSopenharmony_ci   * @crossplatform
148461847f8eSopenharmony_ci   * @since 10
148561847f8eSopenharmony_ci   */
148661847f8eSopenharmony_ci  /**
148761847f8eSopenharmony_ci   * Image-like particle.
148861847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
148961847f8eSopenharmony_ci   * @crossplatform
149061847f8eSopenharmony_ci   * @atomicservice
149161847f8eSopenharmony_ci   * @since 11
149261847f8eSopenharmony_ci   */
149361847f8eSopenharmony_ci  IMAGE = 'image',
149461847f8eSopenharmony_ci}
149561847f8eSopenharmony_ci
149661847f8eSopenharmony_ci/**
149761847f8eSopenharmony_ci * Enumerates the emitter shapes of a particle.
149861847f8eSopenharmony_ci * @enum { string }
149961847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full
150061847f8eSopenharmony_ci * @crossplatform
150161847f8eSopenharmony_ci * @since 10
150261847f8eSopenharmony_ci */
150361847f8eSopenharmony_ci/**
150461847f8eSopenharmony_ci * Enumerates the emitter shapes of a particle.
150561847f8eSopenharmony_ci * @enum { string }
150661847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full
150761847f8eSopenharmony_ci * @crossplatform
150861847f8eSopenharmony_ci * @atomicservice
150961847f8eSopenharmony_ci * @since 11
151061847f8eSopenharmony_ci */
151161847f8eSopenharmony_cideclare enum ParticleEmitterShape {
151261847f8eSopenharmony_ci  /**
151361847f8eSopenharmony_ci   * Rectangle.
151461847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
151561847f8eSopenharmony_ci   * @crossplatform
151661847f8eSopenharmony_ci   * @since 10
151761847f8eSopenharmony_ci   */
151861847f8eSopenharmony_ci  /**
151961847f8eSopenharmony_ci   * Rectangle.
152061847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
152161847f8eSopenharmony_ci   * @crossplatform
152261847f8eSopenharmony_ci   * @atomicservice
152361847f8eSopenharmony_ci   * @since 11
152461847f8eSopenharmony_ci   */
152561847f8eSopenharmony_ci  RECTANGLE = 'rectangle',
152661847f8eSopenharmony_ci
152761847f8eSopenharmony_ci  /**
152861847f8eSopenharmony_ci   * Circle.
152961847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
153061847f8eSopenharmony_ci   * @crossplatform
153161847f8eSopenharmony_ci   * @since 10
153261847f8eSopenharmony_ci   */
153361847f8eSopenharmony_ci  /**
153461847f8eSopenharmony_ci   * Circle.
153561847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
153661847f8eSopenharmony_ci   * @crossplatform
153761847f8eSopenharmony_ci   * @atomicservice
153861847f8eSopenharmony_ci   * @since 11
153961847f8eSopenharmony_ci   */
154061847f8eSopenharmony_ci  CIRCLE = 'circle',
154161847f8eSopenharmony_ci
154261847f8eSopenharmony_ci  /**
154361847f8eSopenharmony_ci   * Ellipse.
154461847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
154561847f8eSopenharmony_ci   * @crossplatform
154661847f8eSopenharmony_ci   * @since 10
154761847f8eSopenharmony_ci   */
154861847f8eSopenharmony_ci  /**
154961847f8eSopenharmony_ci   * Ellipse.
155061847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
155161847f8eSopenharmony_ci   * @crossplatform
155261847f8eSopenharmony_ci   * @atomicservice
155361847f8eSopenharmony_ci   * @since 11
155461847f8eSopenharmony_ci   */
155561847f8eSopenharmony_ci  ELLIPSE = 'ellipse',
155661847f8eSopenharmony_ci}
155761847f8eSopenharmony_ci
155861847f8eSopenharmony_ci/**
155961847f8eSopenharmony_ci * Enumerates the color distribution types of a particle.
156061847f8eSopenharmony_ci * 
156161847f8eSopenharmony_ci * @enum { number }
156261847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full
156361847f8eSopenharmony_ci * @crossplatform
156461847f8eSopenharmony_ci * @atomicservice
156561847f8eSopenharmony_ci * @since 12
156661847f8eSopenharmony_ci */
156761847f8eSopenharmony_cideclare enum DistributionType {
156861847f8eSopenharmony_ci  /**
156961847f8eSopenharmony_ci   * Uniform distribution.
157061847f8eSopenharmony_ci   * 
157161847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
157261847f8eSopenharmony_ci   * @crossplatform
157361847f8eSopenharmony_ci   * @atomicservice
157461847f8eSopenharmony_ci   * @since 12
157561847f8eSopenharmony_ci   */
157661847f8eSopenharmony_ci  UNIFORM = 0,
157761847f8eSopenharmony_ci
157861847f8eSopenharmony_ci  /**
157961847f8eSopenharmony_ci   * Gaussian distribution.
158061847f8eSopenharmony_ci   * 
158161847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
158261847f8eSopenharmony_ci   * @crossplatform
158361847f8eSopenharmony_ci   * @atomicservice
158461847f8eSopenharmony_ci   * @since 12
158561847f8eSopenharmony_ci   */
158661847f8eSopenharmony_ci  GAUSSIAN = 1,
158761847f8eSopenharmony_ci}
158861847f8eSopenharmony_ci
158961847f8eSopenharmony_ci/**
159061847f8eSopenharmony_ci * Enumerates the updater types of a particle.
159161847f8eSopenharmony_ci * @enum { string }
159261847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full
159361847f8eSopenharmony_ci * @crossplatform
159461847f8eSopenharmony_ci * @since 10
159561847f8eSopenharmony_ci */
159661847f8eSopenharmony_ci/**
159761847f8eSopenharmony_ci * Enumerates the updater types of a particle.
159861847f8eSopenharmony_ci * @enum { string }
159961847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full
160061847f8eSopenharmony_ci * @crossplatform
160161847f8eSopenharmony_ci * @atomicservice
160261847f8eSopenharmony_ci * @since 11
160361847f8eSopenharmony_ci */
160461847f8eSopenharmony_cideclare enum ParticleUpdater {
160561847f8eSopenharmony_ci  /**
160661847f8eSopenharmony_ci   * No updater is used.
160761847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
160861847f8eSopenharmony_ci   * @crossplatform
160961847f8eSopenharmony_ci   * @since 10
161061847f8eSopenharmony_ci   */
161161847f8eSopenharmony_ci  /**
161261847f8eSopenharmony_ci   * No updater is used.
161361847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
161461847f8eSopenharmony_ci   * @crossplatform
161561847f8eSopenharmony_ci   * @atomicservice
161661847f8eSopenharmony_ci   * @since 11
161761847f8eSopenharmony_ci   */
161861847f8eSopenharmony_ci  NONE = 'none',
161961847f8eSopenharmony_ci
162061847f8eSopenharmony_ci  /**
162161847f8eSopenharmony_ci   * Random updater.
162261847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
162361847f8eSopenharmony_ci   * @crossplatform
162461847f8eSopenharmony_ci   * @since 10
162561847f8eSopenharmony_ci   */
162661847f8eSopenharmony_ci  /**
162761847f8eSopenharmony_ci   * Random updater.
162861847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
162961847f8eSopenharmony_ci   * @crossplatform
163061847f8eSopenharmony_ci   * @atomicservice
163161847f8eSopenharmony_ci   * @since 11
163261847f8eSopenharmony_ci   */
163361847f8eSopenharmony_ci  RANDOM = 'random',
163461847f8eSopenharmony_ci
163561847f8eSopenharmony_ci  /**
163661847f8eSopenharmony_ci   * Curve updater.
163761847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
163861847f8eSopenharmony_ci   * @crossplatform
163961847f8eSopenharmony_ci   * @since 10
164061847f8eSopenharmony_ci   */
164161847f8eSopenharmony_ci  /**
164261847f8eSopenharmony_ci   * Curve updater.
164361847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
164461847f8eSopenharmony_ci   * @crossplatform
164561847f8eSopenharmony_ci   * @atomicservice
164661847f8eSopenharmony_ci   * @since 11
164761847f8eSopenharmony_ci   */
164861847f8eSopenharmony_ci  CURVE = 'curve',
164961847f8eSopenharmony_ci}
165061847f8eSopenharmony_ci
165161847f8eSopenharmony_ci/**
165261847f8eSopenharmony_ci * Defines the SizeT type.
165361847f8eSopenharmony_ci *
165461847f8eSopenharmony_ci * @typedef { import('../api/arkui/Graphics').SizeT<T> }
165561847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full
165661847f8eSopenharmony_ci * @crossplatform
165761847f8eSopenharmony_ci * @atomicservice
165861847f8eSopenharmony_ci * @since 12
165961847f8eSopenharmony_ci */
166061847f8eSopenharmony_cideclare type SizeT<T> = import('../api/arkui/Graphics').SizeT<T>;
166161847f8eSopenharmony_ci
166261847f8eSopenharmony_ci /**
166361847f8eSopenharmony_ci * Defines the PositionT type.
166461847f8eSopenharmony_ci *
166561847f8eSopenharmony_ci * @typedef { import('../api/arkui/Graphics').PositionT<T> }
166661847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full
166761847f8eSopenharmony_ci * @crossplatform
166861847f8eSopenharmony_ci * @atomicservice
166961847f8eSopenharmony_ci * @since 12
167061847f8eSopenharmony_ci */
167161847f8eSopenharmony_cideclare type PositionT<T> = import('../api/arkui/Graphics').PositionT<T>;
167261847f8eSopenharmony_ci
167361847f8eSopenharmony_ci/**
167461847f8eSopenharmony_ci * Defines the Particle component attribute functions.
167561847f8eSopenharmony_ci * @extends CommonMethod<ParticleAttribute>
167661847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full
167761847f8eSopenharmony_ci * @crossplatform
167861847f8eSopenharmony_ci * @since 10
167961847f8eSopenharmony_ci */
168061847f8eSopenharmony_ci/**
168161847f8eSopenharmony_ci * Defines the Particle component attribute functions.
168261847f8eSopenharmony_ci * @extends CommonMethod<ParticleAttribute>
168361847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full
168461847f8eSopenharmony_ci * @crossplatform
168561847f8eSopenharmony_ci * @atomicservice
168661847f8eSopenharmony_ci * @since 11
168761847f8eSopenharmony_ci */
168861847f8eSopenharmony_cideclare class ParticleAttribute extends CommonMethod<ParticleAttribute> {
168961847f8eSopenharmony_ci  /**
169061847f8eSopenharmony_ci   * Particle disturbance Field.
169161847f8eSopenharmony_ci   *
169261847f8eSopenharmony_ci   * @param { Array<DisturbanceFieldOptions> } fields - particle disturbance Field params.
169361847f8eSopenharmony_ci   * @returns { ParticleAttribute } Returns the particle attribute.
169461847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
169561847f8eSopenharmony_ci   * @crossplatform
169661847f8eSopenharmony_ci   * @atomicservice
169761847f8eSopenharmony_ci   * @since 12
169861847f8eSopenharmony_ci   */
169961847f8eSopenharmony_ci  disturbanceFields(fields: Array<DisturbanceFieldOptions>): ParticleAttribute;
170061847f8eSopenharmony_ci
170161847f8eSopenharmony_ci  /**
170261847f8eSopenharmony_ci   * Add particle animation component properties.
170361847f8eSopenharmony_ci   *
170461847f8eSopenharmony_ci   * @param { Array<EmitterProperty> } value - The emitter property.
170561847f8eSopenharmony_ci   * @returns { ParticleAttribute } Returns the particle attribute.
170661847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
170761847f8eSopenharmony_ci   * @crossplatform
170861847f8eSopenharmony_ci   * @atomicservice
170961847f8eSopenharmony_ci   * @since 12
171061847f8eSopenharmony_ci   */
171161847f8eSopenharmony_ci  emitter(value : Array<EmitterProperty>) : ParticleAttribute;
171261847f8eSopenharmony_ci}
171361847f8eSopenharmony_ci
171461847f8eSopenharmony_ci/**
171561847f8eSopenharmony_ci * Defines Particle Component.
171661847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full
171761847f8eSopenharmony_ci * @crossplatform
171861847f8eSopenharmony_ci * @since 10
171961847f8eSopenharmony_ci */
172061847f8eSopenharmony_ci/**
172161847f8eSopenharmony_ci * Defines Particle Component.
172261847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full
172361847f8eSopenharmony_ci * @crossplatform
172461847f8eSopenharmony_ci * @atomicservice
172561847f8eSopenharmony_ci * @since 11
172661847f8eSopenharmony_ci */
172761847f8eSopenharmony_cideclare const Particle: ParticleInterface;
172861847f8eSopenharmony_ci
172961847f8eSopenharmony_ci/**
173061847f8eSopenharmony_ci * Defines particle disturbance Field params.
173161847f8eSopenharmony_ci * @interface DisturbanceFieldOptions
173261847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full
173361847f8eSopenharmony_ci * @crossplatform
173461847f8eSopenharmony_ci * @atomicservice
173561847f8eSopenharmony_ci * @since 12
173661847f8eSopenharmony_ci */
173761847f8eSopenharmony_cideclare interface DisturbanceFieldOptions {
173861847f8eSopenharmony_ci
173961847f8eSopenharmony_ci  /**
174061847f8eSopenharmony_ci   * Strength of the repulsive force from the center outward,
174161847f8eSopenharmony_ci   * with positive numbers indicating outward repulsion and negative numbers indicating
174261847f8eSopenharmony_ci   * inward attraction.
174361847f8eSopenharmony_ci   *
174461847f8eSopenharmony_ci   * @type { ?number }
174561847f8eSopenharmony_ci   * @default 0
174661847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
174761847f8eSopenharmony_ci   * @crossplatform
174861847f8eSopenharmony_ci   * @atomicservice
174961847f8eSopenharmony_ci   * @since 12
175061847f8eSopenharmony_ci   */
175161847f8eSopenharmony_ci  strength?: number;
175261847f8eSopenharmony_ci
175361847f8eSopenharmony_ci  /**
175461847f8eSopenharmony_ci   * Disturbance filed shape.
175561847f8eSopenharmony_ci   *
175661847f8eSopenharmony_ci   * @type { ?DisturbanceFieldShape }
175761847f8eSopenharmony_ci   * @default DisturbanceFieldShape.RECT
175861847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
175961847f8eSopenharmony_ci   * @crossplatform
176061847f8eSopenharmony_ci   * @atomicservice
176161847f8eSopenharmony_ci   * @since 12
176261847f8eSopenharmony_ci   */
176361847f8eSopenharmony_ci  shape?: DisturbanceFieldShape;
176461847f8eSopenharmony_ci
176561847f8eSopenharmony_ci  /**
176661847f8eSopenharmony_ci   * Disturbance filed size width value width, height.
176761847f8eSopenharmony_ci   *
176861847f8eSopenharmony_ci   * @type { ?SizeT<number> }
176961847f8eSopenharmony_ci   * @default {width:0,height:0}
177061847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
177161847f8eSopenharmony_ci   * @crossplatform
177261847f8eSopenharmony_ci   * @atomicservice
177361847f8eSopenharmony_ci   * @since 12
177461847f8eSopenharmony_ci   */
177561847f8eSopenharmony_ci  size?: SizeT<number>;
177661847f8eSopenharmony_ci
177761847f8eSopenharmony_ci  /**
177861847f8eSopenharmony_ci   * Disturbance filed position width value x, y.
177961847f8eSopenharmony_ci   *
178061847f8eSopenharmony_ci   * @type { ?PositionT<number> }
178161847f8eSopenharmony_ci   * @default {x:0,y:0}
178261847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
178361847f8eSopenharmony_ci   * @crossplatform
178461847f8eSopenharmony_ci   * @atomicservice
178561847f8eSopenharmony_ci   * @since 12
178661847f8eSopenharmony_ci   */
178761847f8eSopenharmony_ci  position?: PositionT<number>;
178861847f8eSopenharmony_ci
178961847f8eSopenharmony_ci  /**
179061847f8eSopenharmony_ci   * Attenuation degree of the field from the center point to the field boundary.
179161847f8eSopenharmony_ci   * ranging from 0 to 100 integers. If 0, it indicates that the field is a rigid body,
179261847f8eSopenharmony_ci   * and all particles within the range will be excluded.
179361847f8eSopenharmony_ci   * a larger feather value indicates a greater degree of relaxation in the field,
179461847f8eSopenharmony_ci   * and more particles near the center point will appear in the field strength range. The default value is 0.
179561847f8eSopenharmony_ci   *
179661847f8eSopenharmony_ci   * @type { ?number }
179761847f8eSopenharmony_ci   * @default 0
179861847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
179961847f8eSopenharmony_ci   * @crossplatform
180061847f8eSopenharmony_ci   * @atomicservice
180161847f8eSopenharmony_ci   * @since 12
180261847f8eSopenharmony_ci   */
180361847f8eSopenharmony_ci  feather?: number;
180461847f8eSopenharmony_ci
180561847f8eSopenharmony_ci  /**
180661847f8eSopenharmony_ci   * Scaling parameter is used to control the overall size of noise, with a value greater or equal 0.
180761847f8eSopenharmony_ci   *
180861847f8eSopenharmony_ci   * @type { ?number }
180961847f8eSopenharmony_ci   * @default 1
181061847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
181161847f8eSopenharmony_ci   * @crossplatform
181261847f8eSopenharmony_ci   * @atomicservice
181361847f8eSopenharmony_ci   * @since 12
181461847f8eSopenharmony_ci   */
181561847f8eSopenharmony_ci  noiseScale?: number;
181661847f8eSopenharmony_ci
181761847f8eSopenharmony_ci   /**
181861847f8eSopenharmony_ci   * Noise frequency with a value greater or equal 0.
181961847f8eSopenharmony_ci   *
182061847f8eSopenharmony_ci   * @type { ?number }
182161847f8eSopenharmony_ci   * @default 1
182261847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
182361847f8eSopenharmony_ci   * @crossplatform
182461847f8eSopenharmony_ci   * @atomicservice
182561847f8eSopenharmony_ci   * @since 12
182661847f8eSopenharmony_ci   */
182761847f8eSopenharmony_ci  noiseFrequency?: number;
182861847f8eSopenharmony_ci
182961847f8eSopenharmony_ci  /**
183061847f8eSopenharmony_ci   * NoiseAmplitude fluctuation range of noise,  value,
183161847f8eSopenharmony_ci   *
183261847f8eSopenharmony_ci   * @type { ?number }
183361847f8eSopenharmony_ci   * @default 1
183461847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
183561847f8eSopenharmony_ci   * @crossplatform
183661847f8eSopenharmony_ci   * @atomicservice
183761847f8eSopenharmony_ci   * @since 12
183861847f8eSopenharmony_ci   */
183961847f8eSopenharmony_ci  noiseAmplitude?: number;
184061847f8eSopenharmony_ci}
184161847f8eSopenharmony_ci
184261847f8eSopenharmony_ci/**
184361847f8eSopenharmony_ci * Defines particle disturbance shape.
184461847f8eSopenharmony_ci *
184561847f8eSopenharmony_ci * @enum { number }
184661847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full
184761847f8eSopenharmony_ci * @crossplatform
184861847f8eSopenharmony_ci * @atomicservice
184961847f8eSopenharmony_ci * @since 12
185061847f8eSopenharmony_ci */
185161847f8eSopenharmony_cideclare enum DisturbanceFieldShape {
185261847f8eSopenharmony_ci
185361847f8eSopenharmony_ci  /**
185461847f8eSopenharmony_ci   * Shape rect.
185561847f8eSopenharmony_ci   *
185661847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
185761847f8eSopenharmony_ci   * @crossplatform
185861847f8eSopenharmony_ci   * @atomicservice
185961847f8eSopenharmony_ci   * @since 12
186061847f8eSopenharmony_ci   */
186161847f8eSopenharmony_ci  RECT,
186261847f8eSopenharmony_ci
186361847f8eSopenharmony_ci   /**
186461847f8eSopenharmony_ci   * Shape circle.
186561847f8eSopenharmony_ci   *
186661847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
186761847f8eSopenharmony_ci   * @crossplatform
186861847f8eSopenharmony_ci   * @atomicservice
186961847f8eSopenharmony_ci   * @since 12
187061847f8eSopenharmony_ci   */
187161847f8eSopenharmony_ci  CIRCLE,
187261847f8eSopenharmony_ci
187361847f8eSopenharmony_ci  /**
187461847f8eSopenharmony_ci   * Shape eclipse.
187561847f8eSopenharmony_ci   *
187661847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
187761847f8eSopenharmony_ci   * @crossplatform
187861847f8eSopenharmony_ci   * @atomicservice
187961847f8eSopenharmony_ci   * @since 12
188061847f8eSopenharmony_ci   */
188161847f8eSopenharmony_ci  ELLIPSE
188261847f8eSopenharmony_ci
188361847f8eSopenharmony_ci}