import { Vector2, Vector3, Vector4 } from "../GeoMath";
import Curve from "./Curve";
import Type from "./Type";
import Time from "./Time";
import Interval from "./Interval";
import Invariance from "./Invariance";
/**
* キーフレームによる階段関数
*
* あるキーフレームから次のキーフレームの直前まで一定の値を返す階段関数である。
*
* 構築子により任意の関数値の型を指定することができる。
*/
declare class KFStepCurve extends Curve {
/** number | vector2 | vector3 | vector4 */
private _value_type;
/** >= 1 */
private _num_keyframes;
private _key_times;
private _key_values;
/**
* type 型の階段関数を keyframes により生成する。
*
* type は任意の型を指定することができる。
*
* keyframes を省略したときは type 型の既定値を返す定数関数と同等になる。keyframes の形式に関しては
* [[KFStepCurve.setKeyFrames setKeyFrames()]] を参照のこと。
*
* @param {mapray.animation.Type} type 関数値の型
* @param {object[]} [keyframes] 初期キーフレーム
*/
constructor(type: Type, keyframes?: (Time | number | Vector2 | Vector3 | Vector4)[]);
/**
* キーフレーム設定
*
* keyframes により、すべてのキーフレームを指定する。
*
* 条件
* - keyframes.length >= 2 (キーフレーム数 >= 1)
* - すべての i, j において、i < j ⇔ 時刻i < 時刻j
* - すべての i において、値i は構築子の type 引数で指定した型のインスタンス
*
* @param keyframes [時刻0, 値0, 時刻1, 値1, ...]
*/
setKeyFrames(keyframes: (Time | any)[]): void;
isTypeSupported(type: Type): boolean;
getValue(time: Time, type: Type): any;
getInvariance(interval: Interval): Invariance;
/**
* time での補間値を取得
*
* @param time
*
* @return 補間値 (this._value_type に適応した型)
*/
private _getInterpolatedValue;
}
export default KFStepCurve;
//# sourceMappingURL=KFStepCurve.d.ts.map