export { api, WS_URL, TOKEN_KEY, REFRESH_TOKEN_KEY, ApiError } from './core';
export type { ApiResponse, PaginatedData } from './core';
export { wsService } from './core';
export type {
  WSMessage,
  WSMessageType,
  WSChatMessage,
  WSReadMessage,
  WSTypingMessage,
  WSRecallMessage,
  WSNotificationMessage,
  WSAnnouncementMessage,
  WSGroupChatMessage,
  WSGroupTypingMessage,
  GroupNoticeType,
  WSGroupNoticeMessage,
  WSGroupMentionMessage,
  WSGroupReadMessage,
  WSGroupRecallMessage,
} from './core';
export { handleError, createErrorHandler, safeAsync, createAppError, AppErrorCode } from './core';
export type { AppError, ErrorHandlerOptions } from './core';

export { authService, resolveAuthApiError } from './auth';
export type {
  LoginRequest,
  RegisterRequest,
  SendEmailCodeRequest,
  ResetPasswordRequest,
  VerifyCurrentUserEmailRequest,
  AuthResponse,
  RefreshTokenResponse,
  UpdateUserRequest,
  BlockedUserListResponse,
  BlockStatusResponse,
} from './auth';
export { verificationService } from './auth';
export type { SubmitVerificationResponse } from './auth';

export { postService, commentService, voteService, channelService, reportService } from './post';
export type { ChannelItem } from './post';

export { tradeService } from './trade/tradeService';

export { messageService } from './message';
export { groupService } from './message';
export type {
  GroupResponse,
  GroupMemberResponse,
  GroupAnnouncementResponse,
  GroupListResponse,
  GroupMemberListResponse,
  GroupAnnouncementListResponse,
  CreateGroupRequest,
  InviteMembersRequest,
  TransferOwnerRequest,
  SetRoleRequest,
  SetNicknameRequest,
  SetMuteAllRequest,
  SetJoinTypeRequest,
  CreateAnnouncementRequest,
} from './message';

export { notificationService } from './notification';
export { systemNotificationService, getNotificationTitle } from './notification';
export type { AppNotificationType } from './notification';
export { pushService, registerDevice, getDevices, unregisterDevice, updateDeviceToken, getPushRecords } from './notification';

export { uploadService } from './upload';
export type { UploadResponse } from './upload';

export {
  backgroundService,
  initBackgroundService,
  stopBackgroundService,
  triggerVibration,
  vibrateOnMessage,
  setVibrationConfig,
  getVibrationConfig,
  setVibrationEnabled,
  checkBackgroundStatus,
} from './background';

export { showPrompt } from './ui';
export { showConfirm } from './ui';

export { apkUpdateService, checkForAPKUpdate, manualCheckForUpdate } from './platform';
export type { APKVersionInfo, VersionCheckResult } from './platform';
export { scheduleService } from './platform';
export type { CreateScheduleCourseRequest } from './platform';
