/**
* Copyright(c) Live2D Inc. All rights reserved.
*
* Use of this source code is governed by the Live2D Open Software license
* that can be found at https://www.live2d.com/eula/live2d-open-software-license-agreement_en.html.
*/
import 'whatwg-fetch';
import { ICubismModelSetting } from './framework/icubismmodelsetting';
import { CubismIdHandle } from './framework/id/cubismid';
import { CubismMatrix44 } from './framework/math/cubismmatrix44';
import { CubismUserModel } from './framework/model/cubismusermodel';
import { ACubismMotion, FinishedMotionCallback } from './framework/motion/acubismmotion';
import { CubismMotionQueueEntryHandle } from './framework/motion/cubismmotionqueuemanager';
import { csmMap } from './framework/type/csmmap';
import { csmRect } from './framework/type/csmrectf';
import { csmString } from './framework/type/csmstring';
import { csmVector } from './framework/type/csmvector';
/**
* ユーザーが実際に使用するモデルの実装クラス
* モデル生成、機能コンポーネント生成、更新処理とレンダリングの呼び出しを行う。
*/
export declare class LAppModel extends CubismUserModel {
/**
* model3.jsonが置かれたディレクトリとファイルパスからモデルを生成する
* @param dir
* @param fileName
*/
loadAssets(dir: string, fileName: string): void;
/**
* model3.jsonからモデルを生成する。
* model3.jsonの記述に従ってモデル生成、モーション、物理演算などのコンポーネント生成を行う。
*
* @param setting ICubismModelSettingのインスタンス
*/
private setupModel;
/**
* テクスチャユニットにテクスチャをロードする
*/
private setupTextures;
/**
* レンダラを再構築する
*/
reloadRenderer(): void;
/**
* 更新
*/
update(): void;
/**
* 引数で指定したモーションの再生を開始する
* @param group モーショングループ名
* @param no グループ内の番号
* @param priority 優先度
* @param onFinishedMotionHandler モーション再生終了時に呼び出されるコールバック関数
* @return 開始したモーションの識別番号を返す。個別のモーションが終了したか否かを判定するisFinished()の引数で使用する。開始できない時は[-1]
*/
startMotion(group: string, no: number, priority: number, onFinishedMotionHandler?: FinishedMotionCallback): CubismMotionQueueEntryHandle;
/**
* ランダムに選ばれたモーションの再生を開始する。
* @param group モーショングループ名
* @param priority 優先度
* @param onFinishedMotionHandler モーション再生終了時に呼び出されるコールバック関数
* @return 開始したモーションの識別番号を返す。個別のモーションが終了したか否かを判定するisFinished()の引数で使用する。開始できない時は[-1]
*/
startRandomMotion(group: string, priority: number, onFinishedMotionHandler?: FinishedMotionCallback): CubismMotionQueueEntryHandle;
/**
* 引数で指定した表情モーションをセットする
*
* @param expressionId 表情モーションのID
*/
setExpression(expressionId: string): void;
/**
* ランダムに選ばれた表情モーションをセットする
*/
setRandomExpression(): void;
/**
* イベントの発火を受け取る
*/
motionEventFired(eventValue: csmString): void;
/**
* 当たり判定テスト
* 指定IDの頂点リストから矩形を計算し、座標をが矩形範囲内か判定する。
*
* @param hitArenaName 当たり判定をテストする対象のID
* @param x 判定を行うX座標
* @param y 判定を行うY座標
*/
hitTest(hitArenaName: string, x: number, y: number): boolean;
/**
* モーションデータをグループ名から一括でロードする。
* モーションデータの名前は内部でModelSettingから取得する。
*
* @param group モーションデータのグループ名
*/
preLoadMotionGroup(group: string): void;
/**
* すべてのモーションデータを解放する。
*/
releaseMotions(): void;
/**
* 全ての表情データを解放する。
*/
releaseExpressions(): void;
/**
* モデルを描画する処理。モデルを描画する空間のView-Projection行列を渡す。
*/
doDraw(): void;
/**
* モデルを描画する処理。モデルを描画する空間のView-Projection行列を渡す。
*/
draw(matrix: CubismMatrix44): void;
/**
* コンストラクタ
*/
constructor();
_modelSetting: ICubismModelSetting;
_modelHomeDir: string;
_userTimeSeconds: number;
_eyeBlinkIds: csmVector;
_lipSyncIds: csmVector;
_motions: csmMap;
_expressions: csmMap;
_hitArea: csmVector;
_userArea: csmVector;
_idParamAngleX: CubismIdHandle;
_idParamAngleY: CubismIdHandle;
_idParamAngleZ: CubismIdHandle;
_idParamEyeBallX: CubismIdHandle;
_idParamEyeBallY: CubismIdHandle;
_idParamBodyAngleX: CubismIdHandle;
_state: number;
_expressionCount: number;
_textureCount: number;
_motionCount: number;
_allMotionCount: number;
}