• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/*
2 * Copyright (c) 2021-2025 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16/**
17 * @file
18 * @kit ArkUI
19 */
20
21/**
22 * Contains interpolator functions such as initialization, third-order Bezier curves, and spring curves.
23 *
24 * @namespace curves
25 * @syscap SystemCapability.ArkUI.ArkUI.Full
26 * @since 7
27 */
28/**
29 * Contains interpolator functions such as initialization, third-order Bezier curves, and spring curves.
30 *
31 * @namespace curves
32 * @syscap SystemCapability.ArkUI.ArkUI.Full
33 * @crossplatform
34 * @since 10
35 */
36/**
37 * Contains interpolator functions such as initialization, third-order Bezier curves, and spring curves.
38 *
39 * @namespace curves
40 * @syscap SystemCapability.ArkUI.ArkUI.Full
41 * @crossplatform
42 * @atomicservice
43 * @since 11
44 */
45/**
46 * Contains interpolator functions such as initialization, third-order Bezier curves, and spring curves.
47 *
48 * @namespace curves
49 * @syscap SystemCapability.ArkUI.ArkUI.Full
50 * @crossplatform
51 * @form
52 * @atomicservice
53 * @since 20
54 * @arkts 1.1&1.2
55 */
56declare namespace curves {
57  /**
58   * enum Curve.
59   *
60   * @enum { number }
61   * @syscap SystemCapability.ArkUI.ArkUI.Full
62   * @since 7
63   */
64  /**
65   * enum Curve.
66   *
67   * @enum { number }
68   * @syscap SystemCapability.ArkUI.ArkUI.Full
69   * @crossplatform
70   * @since 10
71   */
72  /**
73   * enum Curve.
74   *
75   * @enum { number }
76   * @syscap SystemCapability.ArkUI.ArkUI.Full
77   * @crossplatform
78   * @atomicservice
79   * @since 11
80   */
81  /**
82   * enum Curve.
83   *
84   * @enum { number }
85   * @syscap SystemCapability.ArkUI.ArkUI.Full
86   * @crossplatform
87   * @form
88   * @atomicservice
89   * @since 20
90   * @arkts 1.1&1.2
91   */
92  export enum Curve {
93    /**
94     * Linear. Indicates that the animation has the same velocity from start to finish.
95     *
96     * @syscap SystemCapability.ArkUI.ArkUI.Full
97     * @since 7
98     */
99    /**
100     * Linear. Indicates that the animation has the same velocity from start to finish.
101     *
102     * @syscap SystemCapability.ArkUI.ArkUI.Full
103     * @crossplatform
104     * @since 10
105     */
106    /**
107     * Linear. Indicates that the animation has the same velocity from start to finish.
108     *
109     * @syscap SystemCapability.ArkUI.ArkUI.Full
110     * @crossplatform
111     * @atomicservice
112     * @since 11
113     */
114    /**
115     * Linear. Indicates that the animation has the same velocity from start to finish.
116     *
117     * @syscap SystemCapability.ArkUI.ArkUI.Full
118     * @crossplatform
119     * @form
120     * @atomicservice
121     * @since 20
122     * @arkts 1.1&1.2
123     */
124    Linear,
125    /**
126     * Ease. Indicates that the animation starts at a low speed, then speeds up, and slows down before the end,
127     * CubicBezier(0.25, 0.1, 0.25, 1.0).
128     *
129     * @syscap SystemCapability.ArkUI.ArkUI.Full
130     * @since 7
131     */
132    /**
133     * Ease. Indicates that the animation starts at a low speed, then speeds up, and slows down before the end,
134     * CubicBezier(0.25, 0.1, 0.25, 1.0).
135     *
136     * @syscap SystemCapability.ArkUI.ArkUI.Full
137     * @crossplatform
138     * @since 10
139     */
140    /**
141     * Ease. Indicates that the animation starts at a low speed, then speeds up, and slows down before the end,
142     * CubicBezier(0.25, 0.1, 0.25, 1.0).
143     *
144     * @syscap SystemCapability.ArkUI.ArkUI.Full
145     * @crossplatform
146     * @atomicservice
147     * @since 11
148     */
149    /**
150     * Ease. Indicates that the animation starts at a low speed, then speeds up, and slows down before the end,
151     * CubicBezier(0.25, 0.1, 0.25, 1.0).
152     *
153     * @syscap SystemCapability.ArkUI.ArkUI.Full
154     * @crossplatform
155     * @form
156     * @atomicservice
157     * @since 20
158     * @arkts 1.1&1.2
159     */
160    Ease,
161    /**
162     * EaseIn. Indicates that the animation starts at a low speed, Cubic Bezier (0.42, 0.0, 1.0, 1.0).
163     *
164     * @syscap SystemCapability.ArkUI.ArkUI.Full
165     * @since 7
166     */
167    /**
168     * EaseIn. Indicates that the animation starts at a low speed, Cubic Bezier (0.42, 0.0, 1.0, 1.0).
169     *
170     * @syscap SystemCapability.ArkUI.ArkUI.Full
171     * @crossplatform
172     * @since 10
173     */
174    /**
175     * EaseIn. Indicates that the animation starts at a low speed, Cubic Bezier (0.42, 0.0, 1.0, 1.0).
176     *
177     * @syscap SystemCapability.ArkUI.ArkUI.Full
178     * @crossplatform
179     * @atomicservice
180     * @since 11
181     */
182    /**
183     * EaseIn. Indicates that the animation starts at a low speed, Cubic Bezier (0.42, 0.0, 1.0, 1.0).
184     *
185     * @syscap SystemCapability.ArkUI.ArkUI.Full
186     * @crossplatform
187     * @form
188     * @atomicservice
189     * @since 20
190     * @arkts 1.1&1.2
191     */
192    EaseIn,
193    /**
194     * EaseOut. Indicates that the animation ends at low speed, CubicBezier (0.0, 0.0, 0.58, 1.0).
195     *
196     * @syscap SystemCapability.ArkUI.ArkUI.Full
197     * @since 7
198     */
199    /**
200     * EaseOut. Indicates that the animation ends at low speed, CubicBezier (0.0, 0.0, 0.58, 1.0).
201     *
202     * @syscap SystemCapability.ArkUI.ArkUI.Full
203     * @crossplatform
204     * @since 10
205     */
206    /**
207     * EaseOut. Indicates that the animation ends at low speed, CubicBezier (0.0, 0.0, 0.58, 1.0).
208     *
209     * @syscap SystemCapability.ArkUI.ArkUI.Full
210     * @crossplatform
211     * @atomicservice
212     * @since 11
213     */
214    /**
215     * EaseOut. Indicates that the animation ends at low speed, CubicBezier (0.0, 0.0, 0.58, 1.0).
216     *
217     * @syscap SystemCapability.ArkUI.ArkUI.Full
218     * @crossplatform
219     * @form
220     * @atomicservice
221     * @since 20
222     * @arkts 1.1&1.2
223     */
224    EaseOut,
225    /**
226     * EaseInOut. Indicates that the animation starts and ends at low speed, CubicBezier (0.42, 0.0, 0.58, 1.0).
227     *
228     * @syscap SystemCapability.ArkUI.ArkUI.Full
229     * @since 7
230     */
231    /**
232     * EaseInOut. Indicates that the animation starts and ends at low speed, CubicBezier (0.42, 0.0, 0.58, 1.0).
233     *
234     * @syscap SystemCapability.ArkUI.ArkUI.Full
235     * @crossplatform
236     * @since 10
237     */
238    /**
239     * EaseInOut. Indicates that the animation starts and ends at low speed, CubicBezier (0.42, 0.0, 0.58, 1.0).
240     *
241     * @syscap SystemCapability.ArkUI.ArkUI.Full
242     * @crossplatform
243     * @atomicservice
244     * @since 11
245     */
246    /**
247     * EaseInOut. Indicates that the animation starts and ends at low speed, CubicBezier (0.42, 0.0, 0.58, 1.0).
248     *
249     * @syscap SystemCapability.ArkUI.ArkUI.Full
250     * @crossplatform
251     * @form
252     * @atomicservice
253     * @since 20
254     * @arkts 1.1&1.2
255     */
256    EaseInOut,
257    /**
258     * FastOutSlowIn. Standard curve, cubic-bezier (0.4, 0.0, 0.2, 1.0).
259     *
260     * @syscap SystemCapability.ArkUI.ArkUI.Full
261     * @since 7
262     */
263    /**
264     * FastOutSlowIn. Standard curve, cubic-bezier (0.4, 0.0, 0.2, 1.0).
265     *
266     * @syscap SystemCapability.ArkUI.ArkUI.Full
267     * @crossplatform
268     * @since 10
269     */
270    /**
271     * FastOutSlowIn. Standard curve, cubic-bezier (0.4, 0.0, 0.2, 1.0).
272     *
273     * @syscap SystemCapability.ArkUI.ArkUI.Full
274     * @crossplatform
275     * @atomicservice
276     * @since 11
277     */
278    /**
279     * FastOutSlowIn. Standard curve, cubic-bezier (0.4, 0.0, 0.2, 1.0).
280     *
281     * @syscap SystemCapability.ArkUI.ArkUI.Full
282     * @crossplatform
283     * @form
284     * @atomicservice
285     * @since 20
286     * @arkts 1.1&1.2
287     */
288    FastOutSlowIn,
289    /**
290     * LinearOutSlowIn. Deceleration curve, cubic-bezier (0.0, 0.0, 0.2, 1.0).
291     *
292     * @syscap SystemCapability.ArkUI.ArkUI.Full
293     * @since 7
294     */
295    /**
296     * LinearOutSlowIn. Deceleration curve, cubic-bezier (0.0, 0.0, 0.2, 1.0).
297     *
298     * @syscap SystemCapability.ArkUI.ArkUI.Full
299     * @crossplatform
300     * @since 10
301     */
302    /**
303     * LinearOutSlowIn. Deceleration curve, cubic-bezier (0.0, 0.0, 0.2, 1.0).
304     *
305     * @syscap SystemCapability.ArkUI.ArkUI.Full
306     * @crossplatform
307     * @atomicservice
308     * @since 11
309     */
310    /**
311     * LinearOutSlowIn. Deceleration curve, cubic-bezier (0.0, 0.0, 0.2, 1.0).
312     *
313     * @syscap SystemCapability.ArkUI.ArkUI.Full
314     * @crossplatform
315     * @form
316     * @atomicservice
317     * @since 20
318     * @arkts 1.1&1.2
319     */
320    LinearOutSlowIn,
321    /**
322     * FastOutLinearIn. Acceleration curve, cubic-bezier (0.4, 0.0, 1.0, 1.0).
323     *
324     * @syscap SystemCapability.ArkUI.ArkUI.Full
325     * @since 7
326     */
327    /**
328     * FastOutLinearIn. Acceleration curve, cubic-bezier (0.4, 0.0, 1.0, 1.0).
329     *
330     * @syscap SystemCapability.ArkUI.ArkUI.Full
331     * @crossplatform
332     * @since 10
333     */
334    /**
335     * FastOutLinearIn. Acceleration curve, cubic-bezier (0.4, 0.0, 1.0, 1.0).
336     *
337     * @syscap SystemCapability.ArkUI.ArkUI.Full
338     * @crossplatform
339     * @atomicservice
340     * @since 11
341     */
342    /**
343     * FastOutLinearIn. Acceleration curve, cubic-bezier (0.4, 0.0, 1.0, 1.0).
344     *
345     * @syscap SystemCapability.ArkUI.ArkUI.Full
346     * @crossplatform
347     * @form
348     * @atomicservice
349     * @since 20
350     * @arkts 1.1&1.2
351     */
352    FastOutLinearIn,
353    /**
354     * ExtremeDeceleration. Abrupt curve, cubic-bezier (0.0, 0.0, 0.0, 1.0).
355     *
356     * @syscap SystemCapability.ArkUI.ArkUI.Full
357     * @since 7
358     */
359    /**
360     * ExtremeDeceleration. Abrupt curve, cubic-bezier (0.0, 0.0, 0.0, 1.0).
361     *
362     * @syscap SystemCapability.ArkUI.ArkUI.Full
363     * @crossplatform
364     * @since 10
365     */
366    /**
367     * ExtremeDeceleration. Abrupt curve, cubic-bezier (0.0, 0.0, 0.0, 1.0).
368     *
369     * @syscap SystemCapability.ArkUI.ArkUI.Full
370     * @crossplatform
371     * @atomicservice
372     * @since 11
373     */
374    /**
375     * ExtremeDeceleration. Abrupt curve, cubic-bezier (0.0, 0.0, 0.0, 1.0).
376     *
377     * @syscap SystemCapability.ArkUI.ArkUI.Full
378     * @crossplatform
379     * @form
380     * @atomicservice
381     * @since 20
382     * @arkts 1.1&1.2
383     */
384    ExtremeDeceleration,
385    /**
386     * Sharp. Sharp curves, cubic-bezier (0.33, 0.0, 0.67, 1.0).
387     *
388     * @syscap SystemCapability.ArkUI.ArkUI.Full
389     * @since 7
390     */
391    /**
392     * Sharp. Sharp curves, cubic-bezier (0.33, 0.0, 0.67, 1.0).
393     *
394     * @syscap SystemCapability.ArkUI.ArkUI.Full
395     * @crossplatform
396     * @since 10
397     */
398    /**
399     * Sharp. Sharp curves, cubic-bezier (0.33, 0.0, 0.67, 1.0).
400     *
401     * @syscap SystemCapability.ArkUI.ArkUI.Full
402     * @crossplatform
403     * @atomicservice
404     * @since 11
405     */
406    /**
407     * Sharp. Sharp curves, cubic-bezier (0.33, 0.0, 0.67, 1.0).
408     *
409     * @syscap SystemCapability.ArkUI.ArkUI.Full
410     * @crossplatform
411     * @form
412     * @atomicservice
413     * @since 20
414     * @arkts 1.1&1.2
415     */
416    Sharp,
417    /**
418     * Rhythm. Rhythmic curve, cubic-bezier (0.7, 0.0, 0.2, 1.0).
419     *
420     * @syscap SystemCapability.ArkUI.ArkUI.Full
421     * @since 7
422     */
423    /**
424     * Rhythm. Rhythmic curve, cubic-bezier (0.7, 0.0, 0.2, 1.0).
425     *
426     * @syscap SystemCapability.ArkUI.ArkUI.Full
427     * @crossplatform
428     * @since 10
429     */
430    /**
431     * Rhythm. Rhythmic curve, cubic-bezier (0.7, 0.0, 0.2, 1.0).
432     *
433     * @syscap SystemCapability.ArkUI.ArkUI.Full
434     * @crossplatform
435     * @atomicservice
436     * @since 11
437     */
438    /**
439     * Rhythm. Rhythmic curve, cubic-bezier (0.7, 0.0, 0.2, 1.0).
440     *
441     * @syscap SystemCapability.ArkUI.ArkUI.Full
442     * @crossplatform
443     * @form
444     * @atomicservice
445     * @since 20
446     * @arkts 1.1&1.2
447     */
448    Rhythm,
449    /**
450     * Smooth. Smooth curves, cubic-bezier (0.4, 0.0, 0.4, 1.0).
451     *
452     * @syscap SystemCapability.ArkUI.ArkUI.Full
453     * @since 7
454     */
455    /**
456     * Smooth. Smooth curves, cubic-bezier (0.4, 0.0, 0.4, 1.0).
457     *
458     * @syscap SystemCapability.ArkUI.ArkUI.Full
459     * @crossplatform
460     * @since 10
461     */
462    /**
463     * Smooth. Smooth curves, cubic-bezier (0.4, 0.0, 0.4, 1.0).
464     *
465     * @syscap SystemCapability.ArkUI.ArkUI.Full
466     * @crossplatform
467     * @atomicservice
468     * @since 11
469     */
470    /**
471     * Smooth. Smooth curves, cubic-bezier (0.4, 0.0, 0.4, 1.0).
472     *
473     * @syscap SystemCapability.ArkUI.ArkUI.Full
474     * @crossplatform
475     * @form
476     * @atomicservice
477     * @since 20
478     * @arkts 1.1&1.2
479     */
480    Smooth,
481    /**
482     * Friction. Damping curves, CubicBezier (0.2, 0.0, 0.2, 1.0).
483     *
484     * @syscap SystemCapability.ArkUI.ArkUI.Full
485     * @since 7
486     */
487    /**
488     * Friction. Damping curves, CubicBezier (0.2, 0.0, 0.2, 1.0).
489     *
490     * @syscap SystemCapability.ArkUI.ArkUI.Full
491     * @crossplatform
492     * @since 10
493     */
494    /**
495     * Friction. Damping curves, CubicBezier (0.2, 0.0, 0.2, 1.0).
496     *
497     * @syscap SystemCapability.ArkUI.ArkUI.Full
498     * @crossplatform
499     * @atomicservice
500     * @since 11
501     */
502    /**
503     * Friction. Damping curves, CubicBezier (0.2, 0.0, 0.2, 1.0).
504     *
505     * @syscap SystemCapability.ArkUI.ArkUI.Full
506     * @crossplatform
507     * @form
508     * @atomicservice
509     * @since 20
510     * @arkts 1.1&1.2
511     */
512    Friction,
513  }
514
515  /**
516   * Interface for curve object.
517   *
518   * @typedef ICurve
519   * @syscap SystemCapability.ArkUI.ArkUI.Full
520   * @since 9
521   */
522  /**
523   * Interface for curve object.
524   *
525   * @typedef ICurve
526   * @syscap SystemCapability.ArkUI.ArkUI.Full
527   * @crossplatform
528   * @since 10
529   */
530  /**
531   * Interface for curve object.
532   *
533   * @typedef ICurve
534   * @syscap SystemCapability.ArkUI.ArkUI.Full
535   * @crossplatform
536   * @atomicservice
537   * @since 11
538   */
539  /**
540   * Interface for curve object.
541   *
542   * @interface ICurve
543   * @syscap SystemCapability.ArkUI.ArkUI.Full
544   * @crossplatform
545   * @form
546   * @atomicservice
547   * @since 20
548   * @arkts 1.1&1.2
549   */
550  export interface ICurve {
551    /**
552     * Get curve value by fraction.
553     *
554     * @param { number } fraction -Indicates the current normalized time parameter. Value range: [0, 1].
555     * Note: If the value is less than 0, it will be processed as 0. If the value is greater than 1, 1 is used.
556     * @returns { number }
557     * @syscap SystemCapability.ArkUI.ArkUI.Full
558     * @since 9
559     */
560    /**
561     * Get curve value by fraction.
562     *
563     * @param { number } fraction -Indicates the current normalized time parameter. Value range: [0, 1].
564     * Note: If the value is less than 0, it will be processed as 0. If the value is greater than 1, 1 is used.
565     * @returns { number }
566     * @syscap SystemCapability.ArkUI.ArkUI.Full
567     * @crossplatform
568     * @since 10
569     */
570    /**
571     * Implements calculation.
572     *
573     * @param { number } fraction - Current normalized time.<br>Value range: [0, 1].
574     * <p>**NOTE**:
575     * <br>A value less than 0 is handed as **0**. A value greater than 1 is handed as **1**.
576     * </p>
577     * @returns { number } - Curve interpolation corresponding to the normalized time point.
578     * @syscap SystemCapability.ArkUI.ArkUI.Full
579     * @crossplatform
580     * @atomicservice
581     * @since 11
582     */
583    /**
584     * Get curve value by fraction.
585     *
586     * @param { number } fraction -Indicates the current normalized time parameter. Value range: [0, 1].
587     *     Note: If the value is less than 0, it will be processed as 0. If the value is greater than 1, 1 is used.
588     * @returns { number }
589     * @syscap SystemCapability.ArkUI.ArkUI.Full
590     * @crossplatform
591     * @form
592     * @atomicservice
593     * @since 20
594     * @arkts 1.1&1.2
595     */
596    interpolate(fraction: number): number;
597  }
598
599  /**
600   * Initializes the interpolator curve when called.
601   *
602   * @param { Curve } [curve] The default value is Curve.Linear
603   * @returns { ICurve }
604   * @syscap SystemCapability.ArkUI.ArkUI.Full
605   * @since 9
606   */
607  /**
608   * Initializes the interpolator curve when called.
609   *
610   * @param { Curve } [curve] The default value is Curve.Linear
611   * @returns { ICurve }
612   * @syscap SystemCapability.ArkUI.ArkUI.Full
613   * @crossplatform
614   * @since 10
615   */
616  /**
617   * Implements initialization for the interpolation curve,
618   * which is used to create an interpolation curve based on the input parameter.
619   *
620   * @param { Curve } [curve] - Curve type.<br>Default value: **Curve.Linear**.
621   * @returns { ICurve }
622   * @syscap SystemCapability.ArkUI.ArkUI.Full
623   * @crossplatform
624   * @atomicservice
625   * @since arkts {'1.1':'11','1.2':'20'}
626   * @arkts 1.1&1.2
627   */
628  export function initCurve(curve?: Curve): ICurve;
629
630  /**
631   * Initializes the interpolator curve when called.
632   *
633   * @param { Curve } [curve]
634   * @returns { string }
635   * @syscap SystemCapability.ArkUI.ArkUI.Full
636   * @since 7
637   * @deprecated since 9
638   * @useinstead initCurve
639   */
640  function init(curve?: Curve): string;
641
642  /**
643   * Constructs a step curve when called.
644   *
645   * @param { number } count -The number of steps. The range of this value is [1, +∞).
646   * @param { boolean } end -A step change occurs at the start or end of each interval.
647   * @returns { ICurve }
648   * @syscap SystemCapability.ArkUI.ArkUI.Full
649   * @since 9
650   */
651  /**
652   * Constructs a step curve when called.
653   *
654   * @param { number } count -The number of steps. The range of this value is [1, +∞).
655   * @param { boolean } end -A step change occurs at the start or end of each interval.
656   * @returns { ICurve }
657   * @syscap SystemCapability.ArkUI.ArkUI.Full
658   * @crossplatform
659   * @since 10
660   */
661  /**
662   * Creates a step curve.
663   *
664   * @param { number } count - Number of steps. The value must be a positive integer.<br>Value range: [1, +∞).
665   * <p>**NOTE**:
666   * <br>A value less than 1 evaluates to the value **1**.
667   * </p>
668   * @param { boolean } end -Whether jumping occurs when the interpolation ends.
669   * **true**: Jumping occurs when the interpolation ends.
670   * *false**: Jumping occurs when the interpolation starts.
671   * @returns { ICurve } Interpolation curve.
672   * @syscap SystemCapability.ArkUI.ArkUI.Full
673   * @crossplatform
674   * @atomicservice
675   * @since arkts {'1.1':'11','1.2':'20'}
676   * @arkts 1.1&1.2
677   */
678  export function stepsCurve(count: number, end: boolean): ICurve;
679
680  /**
681   * Constructs a custom curve when called.
682   *
683   * @param { function } interpolate - fraction range is [0,1], the return number must between [0,1].
684   * @returns { ICurve }
685   * @syscap SystemCapability.ArkUI.ArkUI.Full
686   * @crossplatform
687   * @since 10
688   */
689  /**
690   * Creates a custom curve.
691   *
692   * @param { function } interpolate - Custom interpolation callback.fraction: input x value for interpolation.
693   * when the animation starts. Value range: [0, 1]The return value is the y value of the curve. Value range: [0, 1].
694   * <p>**NOTE**:
695   * <br>If fraction is 0, the return value 0 corresponds to the animation start point; any other return value means
696   * <br>that the animation jumps at the start point.If fraction is 1, the return value 1 corresponds to the animation
697   * <br>end point; any other return value means that the end value of the animation is not the value of the state
698   * <br>variable, which will result in an effect of transition from that end value to the value of the state variable.
699   * </p>
700   * @returns { ICurve } Interpolation curve.
701   * @syscap SystemCapability.ArkUI.ArkUI.Full
702   * @crossplatform
703   * @atomicservice
704   * @since arkts {'1.1':'11','1.2':'20'}
705   * @arkts 1.1&1.2
706   */
707  export function customCurve(interpolate: (fraction: number) => number): ICurve;
708
709  /**
710   * Constructs a step curve when called.
711   *
712   * @param { number } count
713   * @param { boolean } end
714   * @returns { string }
715   * @syscap SystemCapability.ArkUI.ArkUI.Full
716   * @since 7
717   * @deprecated since 9
718   * @useinstead stepsCurve
719   */
720  function steps(count: number, end: boolean): string;
721
722  /**
723   * Constructs a third-order Bezier curve when called.
724   * @param { number } x1 -Value range [0, 1].
725   * Note: If the value is less than 0, 0 is used. If the value is greater than 1, 1 is used.
726   * @param { number } y1 -Value range (-∞, +∞).
727   * @param { number } x2 -Value range [0, 1].
728   * Note: If the value is less than 0, 0 is used. If the value is greater than 1, 1 is used.
729   * @param { number } y2 -Value range (-∞, +∞).
730   * @returns { ICurve }
731   * @syscap SystemCapability.ArkUI.ArkUI.Full
732   * @since 9
733   */
734  /**
735   * Constructs a third-order Bezier curve when called.
736   *
737   * @param { number } x1 -Value range [0, 1].
738   * Note: If the value is less than 0, 0 is used. If the value is greater than 1, 1 is used.
739   * @param { number } y1 -Value range (-∞, +∞).
740   * @param { number } x2 -Value range [0, 1].
741   * Note: If the value is less than 0, 0 is used. If the value is greater than 1, 1 is used.
742   * @param { number } y2 -Value range (-∞, +∞).
743   * @returns { ICurve }
744   * @syscap SystemCapability.ArkUI.ArkUI.Full
745   * @crossplatform
746   * @since 10
747   */
748  /**
749   * Creates a cubic Bezier curve. The curve values must be between 0 and 1.
750   *
751   * @param { number } x1 - X coordinate of the first point on the Bezier curve.<br>Value range: [0, 1].
752   * <p>**NOTE**:
753   * <br>A value less than 0 is handed as **0**. A value greater than 1 is handed as **1**.
754   * </p>
755   * @param { number } y1 - Y coordinate of the first point on the Bezier curve.<br>Value range: (-∞, +∞).
756   * @param { number } x2 - X coordinate of the second point on the Bezier curve.<br>Value range: [0, 1].
757   * <p>**NOTE**:
758   * <br>A value less than 0 is handed as **0**. A value greater than 1 is handed as **1**.
759   * </p>
760   * @param { number } y2 - Y coordinate of the second point on the Bezier curve.<br>Value range: (-∞, +∞).
761   * @returns { ICurve } Interpolation curve.
762   * @syscap SystemCapability.ArkUI.ArkUI.Full
763   * @crossplatform
764   * @atomicservice
765   * @since arkts {'1.1':'11','1.2':'20'}
766   * @arkts 1.1&1.2
767   */
768  export function cubicBezierCurve(x1: number, y1: number, x2: number, y2: number): ICurve;
769
770  /**
771   * Creates a cubic Bezier curve. The curve value must range from 0 to 1. This API is deprecated since API version 9.
772   * You are advised to use cubicBezierCurve instead.
773   *
774   * @param { number } x1 -Value range [0, 1].
775   * Note: If the value is less than 0, 0 is used. If the value is greater than 1, 1 is used.
776   * @param { number } y1 -Value range (-∞, +∞).
777   * @param { number } x2 -Value range [0, 1].
778   * Note: If the value is less than 0, 0 is used. If the value is greater than 1, 1 is used.
779   * @param { number } y2 -Value range (-∞, +∞).
780   * @returns { string }
781   * @syscap SystemCapability.ArkUI.ArkUI.Full
782   * @since 7
783   * @deprecated since 9
784   * @useinstead cubicBezierCurve
785   */
786  function cubicBezier(x1: number, y1: number, x2: number, y2: number): string;
787
788  /**
789   * Constructs a spring curve when called. For more information about the meaning of the parameter, see spring().
790   *
791   * @param { number } velocity -Value range (-∞, +∞).
792   * @param { number } mass -Value range (0, +∞). Note: If the value is less than or equal to 0, 1 is used.
793   * @param { number } stiffness -Value range (0, +∞). Note: If the value is less than or equal to 0, 1 is used.
794   * @param { number } damping -Value range (0, +∞). Note: If the value is less than or equal to 0, 1 is used.
795   * @returns { ICurve }
796   * @syscap SystemCapability.ArkUI.ArkUI.Full
797   * @since 9
798   */
799  /**
800   * Constructs a spring curve when called.
801   *
802   * @param { number } velocity -Value range (-∞, +∞).
803   * @param { number } mass -Value range (0, +∞). Note: If the value is less than or equal to 0, 1 is used.
804   * @param { number } stiffness -Value range (0, +∞). Note: If the value is less than or equal to 0, 1 is used.
805   * @param { number } damping -Value range (0, +∞). Note: If the value is less than or equal to 0, 1 is used.
806   * @returns { ICurve }
807   * @syscap SystemCapability.ArkUI.ArkUI.Full
808   * @crossplatform
809   * @since 10
810   */
811  /**
812   * Creates a spring curve. The curve shape is subject to the spring parameters, and the animation duration
813   * is subject to the **duration** parameter in **animation** and **animateTo**.
814   *
815   * @param { number } velocity - Initial velocity. It is applied by external factors to the spring animation,
816   * designed to help ensure the smooth transition from the previous motion state. The velocity is the normalized
817   * velocity, and its value is equal to the actual velocity at the beginning of the animation divided by the
818   * animation attribute change value.Value range: (-∞, +∞).
819   * @param { number } mass - Mass, which influences the inertia in the spring system. The greater the mass,
820   * the greater the amplitude of the oscillation, and the slower the speed of restoring to the equilibrium position.
821   * Value range: (0, +∞).
822   * <p>**NOTE**:
823   * <br>If this parameter is set to a value less than or equal to 0, the value 1 is used.
824   * </p>
825   * @param { number } stiffness - Stiffness.It is the degree to which an object deforms by resisting the force
826   * applied. In an elastic system, the greater the stiffness, the stronger the ability to resist deformation,
827   * and the faster the speed of restoring to the equilibrium position.Value range: (0, +∞).
828   * <p>**NOTE**:
829   * <br>If this parameter is set to a value less than or equal to 0, the value 1 is used.
830   * </p>
831   * @param { number } damping -Damping. It is used to describe the oscillation and attenuation of the system
832   * after being disturbed. The larger the damping, the smaller the number of oscillations of elastic motion,
833   * and the smaller the oscillation amplitude.Value range: (0, +∞).
834   * <p>**NOTE**:
835   * <br>If this parameter is set to a value less than or equal to 0, the value 1 is used.
836   * </p>
837   * @returns { ICurve } Interpolation curve.
838   * @syscap SystemCapability.ArkUI.ArkUI.Full
839   * @crossplatform
840   * @atomicservice
841   * @since arkts {'1.1':'11','1.2':'20'}
842   * @arkts 1.1&1.2
843   */
844  export function springCurve(velocity: number, mass: number, stiffness: number, damping: number): ICurve;
845
846  /**
847   * Constructs a spring curve when called.
848   *
849   * @param { number } velocity -Initial velocity. An influence parameter of external factors on elastic dynamics,
850   * purpose is to ensure a smooth transition of the object from the previous state of motion to the elastic dynamics.
851   * @param { number } mass -Quality. The force object of the elastic system will have an inertial effect on elastic
852   * system. The greater the mass, the greater the amplitude of the oscillation.
853   * @param { number } stiffness -The degree to which an object is deformed by resisting the applied force.
854   * @param { number } damping -Pure number, Used to describe oscillation and decay of a system after being disturbed.
855   * @returns { string }
856   * @syscap SystemCapability.ArkUI.ArkUI.Full
857   * @since 7
858   * @deprecated since 9
859   * @useinstead springCurve
860   */
861  function spring(velocity: number, mass: number, stiffness: number, damping: number): string;
862
863  /**
864   * Constructs a spring motion when called.
865   *
866   * @param { number } [response] The default value is 0.55. Unit: seconds. Value range: (0, +∞).
867   * Note: If a value is set to 0 or less, the default value of 0.55 is used.
868   * @param { number } [dampingFraction] The default value is 0.825. Unit: seconds. Value range: [0, +∞).
869   * Note: If a value is set to 0 or less, the default value of 0.825 is used.
870   * @param { number } [overlapDuration] The default value is 0. Unit: seconds. Value range: [0, +∞).
871   * Note: If a value is set to 0 or less, the default value of 0 is used.
872   * @returns { ICurve }
873   * @syscap SystemCapability.ArkUI.ArkUI.Full
874   * @since 9
875   */
876  /**
877   * Constructs a spring motion when called.
878   *
879   * @param { number } [response] The default value is 0.55. Unit: seconds. Value range: (0, +∞).
880   * Note: If a value is set to 0 or less, the default value of 0.55 is used.
881   * @param { number } [dampingFraction] The default value is 0.825. Unit: seconds. Value range: [0, +∞).
882   * Note: If a value is set to 0 or less, the default value of 0.825 is used.
883   * @param { number } [overlapDuration] The default value is 0. Unit: seconds. Value range: [0, +∞).
884   * Note: If a value is set to 0 or less, the default value of 0 is used.
885   * @returns { ICurve }
886   * @syscap SystemCapability.ArkUI.ArkUI.Full
887   * @crossplatform
888   * @since 10
889   */
890  /**
891   * Creates a spring animation curve.
892   * If multiple spring animations are applied to the same attribute of an object,
893   * each animation replaces their predecessor and inherits the velocity.
894   *
895   * @param { number } [response] Duration of one complete oscillation.
896   * <br>Default value: **0.55**.<br>Unit: second<br>Value range: (0, +∞).
897   * <p>**NOTE**:
898   * <br>If this parameter is set to a value less than or equal to 0, the default value **0.55** is used.
899   * </p>
900   * @param { number } [dampingFraction] Damping coefficient.
901   * **0**: undamped. In this case, the spring oscillates forever.<br>> 0 and < 1: underdamped.
902   * In this case, the spring overshoots the equilibrium position.<br>**1**: critically damped.
903   * 1: overdamped. In this case, the spring approaches equilibrium gradually.<br>Default value: **0.825**.
904   * Unit: second.
905   * Value range: [0, +∞).
906   * <p>**NOTE**:
907   * <br>A value less than 0 evaluates to the default value **0.825**.
908   * </p>
909   * @param { number } [overlapDuration]  Duration for animations to overlap, in seconds.
910   * When animations overlap, the **response** values of these animations will transit smoothly over this duratio
911   * if they are different.<br>Default value: **0**<br>Unit: second<br>Value range: [0, +∞).
912   * <p>**NOTE**
913   * <br>A value less than 0 evaluates to the default value **0**.
914   * <br>The spring animation curve is physics-based. Its duration depends on the **springMotion** parameters and
915   * the previous velocity, rather than the **duration** parameter in animation, animateTo, or pageTransition.
916   * The time cannot be normalized. Therefore, the interpolation cannot be obtained using
917   * the **interpolate** function of the curve.
918   * </p>
919   * @returns { ICurve }
920   * @syscap SystemCapability.ArkUI.ArkUI.Full
921   * @crossplatform
922   * @atomicservice
923   * @since arkts {'1.1':'11','1.2':'20'}
924   * @arkts 1.1&1.2
925   */
926  export function springMotion(response?: number, dampingFraction?: number, overlapDuration?: number): ICurve;
927
928  /**
929   * Constructs a responsive spring motion when called.
930   *
931   * @param { number } [response] The default value is 0.15. Unit: seconds. Value range: (0, +∞).
932   * Note: If a value is set to 0 or less, the default value of 0.15 is used.
933   * @param { number } [dampingFraction] The default value is 0.86. Unit: seconds. Value range: [0, +∞).
934   * Note: If a value is set to 0 or less, the default value of 0.86 is used.
935   * @param { number } [overlapDuration] The default value is 0.25. Unit: seconds. Value range: [0, +∞).
936   * Note: If a value is set to 0 or less, the default value of 0.25 is used.
937   * @returns { ICurve }
938   * @syscap SystemCapability.ArkUI.ArkUI.Full
939   * @since 9
940   */
941  /**
942   * Constructs a responsive spring motion when called.
943   *
944   * @param { number } [response] The default value is 0.15. Unit: seconds. Value range: (0, +∞).
945   * Note: If a value is set to 0 or less, the default value of 0.15 is used.
946   * @param { number } [dampingFraction] The default value is 0.86. Unit: seconds. Value range: [0, +∞).
947   * Note: If a value is set to 0 or less, the default value of 0.86 is used.
948   * @param { number } [overlapDuration] The default value is 0.25. Unit: seconds. Value range: [0, +∞).
949   * Note: If a value is set to 0 or less, the default value of 0.25 is used.
950   * @returns { ICurve }
951   * @syscap SystemCapability.ArkUI.ArkUI.Full
952   * @crossplatform
953   * @since 10
954   */
955  /**
956   * Creates a responsive spring animation curve. It is a special case of [springMotion](#curvesspringmotion9),
957   * with the only difference in the default values. It can be used together with **springMotion**.
958   *
959   * @param { number } [response] See **response** in **springMotion**.<br>Default value: **0.15**.
960   * Unit: second<br>Value range: (0, +∞).
961   * <p>**NOTE**:
962   * <br>If this parameter is set to a value less than or equal to 0, the default value **0.15** is used.
963   * </p>
964   * @param { number } [dampingFraction] See **dampingFraction** in **springMotion**.<br>Default value: **0.86**.
965   * Unit: second<br>Value range: [0, +∞).
966   * <p>**NOTE**
967   * <br>A value less than 0 evaluates to the default value **0.86**.
968   * </p>
969   * @param { number } [overlapDuration] See **overlapDuration** in **springMotion**.<br>Default value: **0.25**.
970   * Unit: second<br>Value range: [0, +∞).
971   * <p>**NOTE**:
972   * <br>A value less than 0 evaluates to the default value **0.25**.
973   * <br>To apply custom settings for a spring animation, you are advised to use **springMotion**.
974   * <br>When using **responsiveSpringMotion**, you are advised to retain the default settings.
975   * <br>The duration of the responsive spring animation depends on the **responsiveSpringMotion** parameters and the
976   * previous velocity, rather than the duration parameter in animation, animateTo, or pageTransition.
977   * <br>In addition, the interpolation cannot be obtained using the **interpolate** function of the curve.
978   * </p>
979   * @returns { ICurve }
980   * @syscap SystemCapability.ArkUI.ArkUI.Full
981   * @crossplatform
982   * @atomicservice
983   * @since arkts {'1.1':'11','1.2':'20'}
984   * @arkts 1.1&1.2
985   */
986  export function responsiveSpringMotion(response?: number, dampingFraction?: number, overlapDuration?: number): ICurve;
987
988  /**
989   * Constructs an interpolating spring curve when called, the animation duration can not be specified manually,
990   * and is determined by parameters of the curve. It produces values change from 0 to 1, and then uses interpolator
991   * to calculate the actual animation values.
992   *
993   * @param { number } velocity - the initial velocity of the spring, and is a normalized speed corresponding to the
994   * value changes from 0 to 1,specific value range (-∞, ∞).
995   * @param { number } mass - the mass of object in the mass-damper-spring system, value range (0, +∞).
996   * Note: If the value is less than or equal to 0, the value 1 is used.
997   * @param { number } stiffness - the stiffness of spring, value range (0, +∞).
998   * Note: If the value is less than or equal to 0, the value 1 is used.
999   * @param { number } damping - the damping value of spring, value range (0, +∞).
1000   * Note: If the value is less than or equal to 0, the value 1 is used.
1001   * @returns { ICurve }
1002   * @syscap SystemCapability.ArkUI.ArkUI.Full
1003   * @crossplatform
1004   * @since 10
1005   */
1006  /**
1007   * Creates an interpolating spring curve animated from 0 to 1. The actual animation value is calculated based
1008   * on the curve. The animation duration is subject to the curve parameters, rather than the **duration** parameter
1009   * in **animation** or **animateTo**.
1010   *
1011   * @param { number } velocity - Initial velocity. It is applied by external factors to the spring animation,
1012   * designed to help ensure the smooth transition from the previous motion state.
1013   * The velocity is the normalized velocity, and its value is equal to the actual velocity at the beginning of
1014   * the animation divided by the animation attribute change value.<br>Value range: (-∞, +∞).
1015   * @param { number } mass - Mass, which influences the inertia in the spring system. The greater the mass,
1016   * the greater the amplitude of the oscillation, and the slower the speed of restoring to the equilibrium position.
1017   * <br>Value range: (0, +∞).
1018   * <p>**NOTE**:
1019   * <br>If this parameter is set to a value less than or equal to 0, the value **1** is used.
1020   * </p>
1021   * @param { number } stiffness - Stiffness. It is the degree to which an object deforms by resisting
1022   * the force applied. In an elastic system, the greater the stiffness, the stronger the ability to resist
1023   * deformation, and the faster the speed of restoring to the equilibrium position.<br>Value range: (0, +∞).
1024   * <p>**NOTE**:
1025   * <br>If this parameter is set to a value less than or equal to 0, the value **1** is used.
1026   * </p>
1027   * @param { number } damping - Damping. It is used to describe the oscillation and attenuation of the system
1028   * after being disturbed. The larger the damping, the smaller the number of oscillations of elastic motion,
1029   * and the smaller the oscillation amplitude.<br>Value range: (0, +∞)<br>
1030   * <p>**NOTE**:
1031   * <br>If this parameter is set to a value less than or equal to 0, the value **1** is used.
1032   * </p>
1033   * @returns { ICurve }
1034   * @syscap SystemCapability.ArkUI.ArkUI.Full
1035   * @crossplatform
1036   * @atomicservice
1037   * @since arkts {'1.1':'11','1.2':'20'}
1038   * @arkts 1.1&1.2
1039   */
1040  export function interpolatingSpring(velocity: number, mass: number, stiffness: number, damping: number): ICurve;
1041}
1042
1043export default curves;
1044