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

// 导出枚举（运行时代码）
export { EmitEvent } from './enum';
export { GatewayState, WebSocketState } from './gateway';

// 导出所有类型
export type {
  Status,
  Result,
} from './common';

export type {
  Character,
  Mode,
  ServerConfig,
  AudioConfig,
  RenderConfig,
  VoiceModeConfig,
  VoiceConfig,
  HumanConfig,
  AngleViewConfig,
  ResolvedRenderConfig,
  ResolvedAssetSceneConfig,
  ResolvedAssetConfig,
  ResolvedBehaviorConfig,
  ResolvedCharacterConfig,
} from './config';

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,
  CharacterActionEvent,
  EventMap,
} from './events';

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,
} from './gateway';

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';

export type {
  IHuman,
  HumanConstructor,
  HumanConstructorParams,
} from './human';

// 类型别名（向后兼容）
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';
