// API Client
export { default as api } from './api';
export type { ApiResponse, ApiErrorResponse } from './api';

// Services
export { authService, AuthService } from './auth.service';
export type {
  RegisterRequest,
  LoginRequest,
  AuthUser,
  AuthResponse,
  ForgotPasswordRequest,
  ResetPasswordRequest,
  VerifyEmailRequest,
  MessageResponse,
} from './auth.service';

// Profile Sections Service
export { profileSectionsService } from './profile-sections.service';
export type {
  FieldType,
  FieldOption,
  RangeConfig,
  FieldValidation,
  FieldUiConfig,
  ProfileField,
  ProfileSection,
  AgentTypeSectionsResponse,
} from './profile-sections.service';

// Agents Service
export { agentsService } from './agents.service';
export type { AgentProfile, AgentType } from './agents.service';

// Upload Service
export { uploadService } from './upload.service';
export type { UploadedFile, UploadProgress } from './upload.service';

// Two-Factor Authentication Service
export { twoFactorService, TwoFactorService } from './two-factor.service';
export type {
  TwoFactorSetupResponse,
  TwoFactorEnableResponse,
  TwoFactorStatusResponse,
  TwoFactorLoginRequest,
  TwoFactorBackupCodeRequest,
  TwoFactorLoginResponse,
  TwoFactorRequiredResponse,
} from './two-factor.service';

// Messaging Services
export { socketService } from './socket.service';
export { messagesService } from './messages.service';

// Support Chat Service
export { supportChatService } from './support-chat.service';
export type { SupportChat, SupportMessage } from './support-chat.service';

// CMS Service
export { cmsService } from './cms.service';

// Notification Services
export { notificationService } from './notification.service';
export { notificationsApiService } from './notifications-api.service';
export type { AppNotification } from './notifications-api.service';

// Stripe Service
export { stripeService } from './stripe.service';
export type { SubscriptionPlan, AgentSubscription, PaymentRecord } from './stripe.service';
