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