/**
 * 统一导出所有类型定义
 */

// 通用类型
export type { Status, Result } from './common';

// 配置相关类型
export type {
  Character,
  Mode,
  ServerConfig,
  AudioConfig,
  RenderConfig,
  VoiceModeConfig,
  VoiceConfig,
  HumanConfig,
  AngleViewConfig,
} from './config';

// API 相关类型
export type {
  Message,
  MessageRole,
  TTSRole,
  TTSModel,
  TTSViseme,
  ChatResponseMode,
  ChatFile,
  AskParams,
  ChatMessageParams,
  ChatMessage,
  PlayInfo,
  StreamAudioPlayInfo,
  AskError,
  AskResponse,
  AskStreamResponse,
  TTSParams,
  TTSResponse,
  Voice2TextResult,
  CharacterInfo,
  CharacterModel,
  RecorderPermission,
  AskCallback,
  SpeakCallback,
  Voice2TextCallback,
} from './api';

// 事件相关类型
export type {
  LoadProgressEvent,
  ErrorEvent,
  AudioPlayEvent,
  Voice2TextEvent,
  FaceRecognitionResult,
  PersonDetectionResult,
  GatewayMessageEvent,
  EventListener,
  AnimationEvent,
  ModelLoadEvent,
  EventMap,
} from './events';

// Gateway 服务相关类型
export type {
  IOSAudioMode,
  GatewayConfig,
  GatewayMessageType,
  GatewayRequestBase,
  GatewayResponseBase,
  ChatRequestData,
  ChatRequest,
  ChatResponseData,
  ChatResponse,
  TTSRequestData,
  TTSRequest,
  TTSResponseData,
  TTSResponse as GatewayTTSResponse,
  ASRRequestData,
  ASRRequest,
  ASRResponseData,
  ASRResponse,
  HeartbeatRequest,
  HeartbeatResponse,
  ErrorResponse,
  GatewayRequest,
  GatewayResponse,
  WebSocketState,
  GatewayState,
} from './gateway';

// 3D 模型相关类型
export type {
  ModelInfo,
  PlayActionOptions,
  LoaderResponse,
  LoaderProgress,
  ModelFile,
  SceneType,
  SceneConfig,
  ThreeJSON,
  Object3DBase,
  Scene,
  Camera,
  PerspectiveCamera,
  OrthographicCamera,
  Light,
  AmbientLight,
  HemisphereLight,
  DirectionalLight,
  PointLight,
  SpotLight,
  RectAreaLight,
  Mesh,
  Line,
  Points,
  Sprite,
  Group,
  Bone,
  Object3D,
  Geometry,
  Material,
  Texture,
  Image,
  AnimationClip,
  BodyOption,
  Body,
  ModelDescription,
  Vec2,
  Vec3,
  Vec4,
  Mat4,
  XYZ,
  Matrix4,
  TCamera,
} from './model';

// 摄像头相关类型
export type {
  FacingMode,
  CameraConfig,
  CameraFeature,
  CameraCore,
  FaceRecognitionConfig,
} from './camera';

// Human 类相关类型
export type {
  IHuman,
  HumanConstructor,
  HumanConstructorParams,
} from './human';

// 枚举类型
export { EmitEvent } from './events';

// 类型别名（向后兼容）
export type {
  HumanConfig as Configuration,
  Result as IResult,
  Result as IResultData,
  Message as MSG,
  TTSRole as TTS_ROLE,
  TTSModel as TTS_MODEL,
  TTSViseme as TTS_VISEME,
  ChatResponseMode as ChatMessageResonseMode,
  ChatFile as ChatMessageFile,
  TTSParams as Text2SpeechParams,
  TTSResponse as Text2Speech,
  Voice2TextResult as Voice2Text,
  RecorderPermission as PermissionResult,
  IHuman as Human,
  LoaderProgress as Progress,
} from './index';
