declare namespace APJS {
  /**
   * @description FaceBindingAnchorType
   * @enum {number}
   * @property FaceCenter - Face center, vertex index in stardard face mesh: 0.
   * @property LeftEye - Left eye, vertex index in stardard face mesh: 816.
   * @property RightEye - Right eye, vertex index in stardard face mesh: 83.
   * @property Forehead - Forehead, vertex index in stardard face mesh: 641.
   * @property Mouth - Mouth center, vertex index in stardard face mesh: 144.
   * @property Chin - Chin, vertex index in stardard face mesh: 133.
   * @property LeftEarlobe - Left earlobe, vertex index in stardard face mesh: 2233.
   * @property RightEarlobe - Right earlobe, vertex index in stardard face mesh: 2049.
   * @property Custom - Custom anchor, fake vertex index: 9999.
   */
  enum FaceBindingAnchorType {
    FaceCenter,
    LeftEye,
    RightEye,
    Forehead,
    MouthCenter,
    Chin,
    LeftEarlobe,
    RightEarlobe,
    Custom,
  }
  
  /**
   * @class FaceBinding
   * @extends DynamicComponent
   */
  class FaceBinding extends DynamicComponent {
    protected constructor();
  
    /**
     * @description The anchor type, default is FaceCenter.
     * @type {FaceBindingAnchorType}
     */
    anchorType: FaceBindingAnchorType;
  
    /**
     * @description The custom anchor point, only valid when anchorType is Custom.
     * @type {Vector3f}
     */
    customAnchorPoint: Vector3f;
  
    /**
     * @description The face ID of the face binding, must be between 1 and 5.
     * @type {number}
     */
    get faceID(): number;
  
    set faceID(value: number);
  }
}