/**
 * TextMe Integration
 * 
 * A TypeScript library for integrating with the TextMe messaging platform.
 * Provides authentication, REST API client, and real-time WebSocket support.
 */

// Auth module
export { TextMeAuth, TextMeAuthError } from './auth.js';
export type { AuthTokens, QRAuthMessage, TokenRefreshResponse } from './auth.js';

// API module
export { 
  TextMeAPI, 
  TextMeAPIError,
  createTextMeClient,
  createTextMeClientFromCredentials,
} from './api.js';
export type {
  AuthTokenRequest,
  AuthTokenResponse,
  AuthTokenRefreshRequest,
  AuthTokenRefreshResponse,
  RegisterDeviceRequest,
  RegisterDeviceResponse,
  UserInfo,
  UserSettings,
  UpdateUserSettingsRequest,
  ProfilePictureRequest,
  ProfilePictureResponse,
  AvailableCountry,
  AvailableCountriesResponse,
  ChoosePhoneNumberRequest,
  PhoneNumber,
  ChoosePhoneNumberResponse,
  Participant,
  Message,
  Conversation,
  ListConversationsParams,
  ListConversationsResponse,
  SendMessageRequest,
  SendMessageResponse,
  Attachment,
  GetUploadUrlRequest,
  GetUploadUrlResponse,
  CreateAttachmentRequest,
  CreateAttachmentResponse,
  Group,
  ListGroupsParams,
  ListGroupsResponse,
  CreateGroupRequest,
  CreateGroupResponse,
  InitiateCallRequest,
  Call,
  InitiateCallResponse,
  AuthHeaders,
} from './api.js';

// Realtime module
export { TextMeRealtime, createTextMeRealtime } from './realtime.js';
export type {
  RealtimeEventType,
  IncomingMessage,
  CallEvent,
  TypingEvent,
  RealtimeError,
  RealtimeOptions,
} from './realtime.js';

// Shared types
export type { TextMeClientConfig } from './types.js';

// Default export for convenience
export { TextMeAPI as default } from './api.js';
