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

// Auth Service
export { authService } from './auth.service';
export type {
  LoginRequest,
  AuthUser,
  AuthResponse,
  MessageResponse,
} from './auth.service';

// Users Service
export { usersService } from './users.service';
export type {
  User,
  UsersListResponse,
  UserFilters,
  VerificationStatus,
  VerificationDocument,
  VerificationHistoryEntry,
  AgentProfileDetails,
} from './users.service';

// Agent Types Service
export { agentTypesService } from './agent-types.service';
export type {
  AgentType,
  CreateAgentTypeDto,
  UpdateAgentTypeDto,
} from './agent-types.service';

// Profile Sections Service
export { profileSectionsService } from './profile-sections.service';
export type {
  ProfileSection,
  AgentTypeSection,
  CreateSectionDto,
  UpdateSectionDto,
  AssignSectionDto,
  UpdateAssignmentDto,
  SectionOrderItem,
  AgentTypeSectionsResponse,
} from './profile-sections.service';

// Profile Fields Service
export { profileFieldsService, FIELD_TYPES } from './profile-fields.service';
export type {
  ProfileField,
  FieldType,
  FieldOption,
  RangeConfig,
  FieldValidation,
  FieldUiConfig,
  CreateFieldDto,
  UpdateFieldDto,
} from './profile-fields.service';

// Upload Service
export { uploadService } from './upload.service';

// CMS Service
export { cmsService } from './cms.service';
export type {
  CmsContentRecord,
  HeroContent,
  FeaturesContent,
  FeatureItem,
  FeaturedAgentItem,
  TopProfessionalsContent,
  ProfessionalItem,
  TestimonialsContent,
  TestimonialItem,
  StatItem,
  AboutHeroContent,
  AboutStatItem,
  AboutStatsContent,
  AboutFeatureItem,
  AboutFeaturesContent,
  AboutTeamMember,
  AboutTeamContent,
  AboutCtaContent,
  FaqCategoryItem,
  FaqItem,
  FaqContent,
} from './cms.service';

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

// Stripe Service
export { adminStripeService } from './stripe.service';
export type {
  SubscriptionPlan,
  AdminSubscription,
  SubscriptionsListResponse,
  RevenueStats,
} from './stripe.service';
