1/* 2* Copyright (c) 2021-2022 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 * Contains interpolator functions such as initialization, third-order Bezier curves, and spring curves. 18 * @namespace curves 19 * @syscap SystemCapability.ArkUI.ArkUI.Full 20 * @since 7 21 */ 22declare namespace curves { 23 /** 24 * enum Curve. 25 * @enum { number } 26 * @syscap SystemCapability.ArkUI.ArkUI.Full 27 * @since 7 28 */ 29 enum Curve { 30 Linear, 31 Ease, 32 EaseIn, 33 EaseOut, 34 EaseInOut, 35 FastOutSlowIn, 36 LinearOutSlowIn, 37 FastOutLinearIn, 38 ExtremeDeceleration, 39 Sharp, 40 Rhythm, 41 Smooth, 42 Friction, 43 } 44 45 /** 46 * Interface for curve object. 47 * @typedef ICurve 48 * @syscap SystemCapability.ArkUI.ArkUI.Full 49 * @since 9 50 */ 51 interface ICurve { 52 /** 53 * Get curve value by fraction. 54 * @param { number } fraction 55 * @returns { number } 56 * @syscap SystemCapability.ArkUI.ArkUI.Full 57 * @since 9 58 */ 59 interpolate(fraction : number) : number; 60 } 61 62 /** 63 * Initializes the interpolator curve when called. 64 * @param { Curve } [curve] 65 * @returns { ICurve } 66 * @syscap SystemCapability.ArkUI.ArkUI.Full 67 * @since 9 68 */ 69 function initCurve(curve?: Curve): ICurve; 70 71 /** 72 * Initializes the interpolator curve when called. 73 * @param { Curve } [curve] 74 * @returns { string } 75 * @syscap SystemCapability.ArkUI.ArkUI.Full 76 * @since 7 77 * @deprecated since 9 78 * @useinstead initCurve 79 */ 80 function init(curve?: Curve): string; 81 82 /** 83 * Constructs a step curve when called. 84 * @param { number } count 85 * @param { boolean } end 86 * @returns { ICurve } 87 * @syscap SystemCapability.ArkUI.ArkUI.Full 88 * @since 9 89 */ 90 function stepsCurve(count: number, end: boolean): ICurve; 91 92 /** 93 * Constructs a step curve when called. 94 * @param { number } count 95 * @param { boolean } end 96 * @returns { string } 97 * @syscap SystemCapability.ArkUI.ArkUI.Full 98 * @since 7 99 * @deprecated since 9 100 * @useinstead stepsCurve 101 */ 102 function steps(count: number, end: boolean): string; 103 104 /** 105 * Constructs a third-order Bezier curve when called. 106 * @param { number } x1 107 * @param { number } y1 108 * @param { number } x2 109 * @param { number } y2 110 * @returns { ICurve } 111 * @syscap SystemCapability.ArkUI.ArkUI.Full 112 * @since 9 113 */ 114 function cubicBezierCurve(x1: number, y1: number, x2: number, y2: number): ICurve; 115 116 /** 117 * Constructs a third-order Bezier curve when called. 118 * @param { number } x1 119 * @param { number } y1 120 * @param { number } x2 121 * @param { number } y2 122 * @returns { string } 123 * @syscap SystemCapability.ArkUI.ArkUI.Full 124 * @since 7 125 * @deprecated since 9 126 * @useinstead cubicBezierCurve 127 */ 128 function cubicBezier(x1: number, y1: number, x2: number, y2: number): string; 129 130 /** 131 * Constructs a spring curve when called. 132 * @param { number } velocity 133 * @param { number } mass 134 * @param { number } stiffness 135 * @param { number } damping 136 * @returns { ICurve } 137 * @syscap SystemCapability.ArkUI.ArkUI.Full 138 * @since 9 139 */ 140 function springCurve(velocity: number, mass: number, stiffness: number, damping: number): ICurve; 141 142 /** 143 * Constructs a spring curve when called. 144 * @param { number } velocity 145 * @param { number } mass 146 * @param { number } stiffness 147 * @param { number } damping 148 * @returns { string } 149 * @syscap SystemCapability.ArkUI.ArkUI.Full 150 * @since 7 151 * @deprecated since 9 152 * @useinstead springCurve 153 */ 154 function spring(velocity: number, mass: number, stiffness: number, damping: number): string; 155 156 /** 157 * Constructs a spring motion when called. 158 * @param { number } [response] 159 * @param { number } [dampingFraction] 160 * @param { number } [overlapDuration] 161 * @returns { ICurve } 162 * @syscap SystemCapability.ArkUI.ArkUI.Full 163 * @since 9 164 */ 165 function springMotion(response?: number, dampingFraction?: number, overlapDuration?: number): ICurve; 166 167 /** 168 * Constructs a responsive spring motion when called. 169 * @param { number } [response] 170 * @param { number } [dampingFraction] 171 * @param { number } [overlapDuration] 172 * @returns { ICurve } 173 * @syscap SystemCapability.ArkUI.ArkUI.Full 174 * @since 9 175 */ 176 function responsiveSpringMotion(response?: number, dampingFraction?: number, overlapDuration?: number): ICurve; 177 178} 179 180export default curves; 181