/**
 * TextMe Integration - Shared Types
 */

// Re-export types from modules
export type {
  // Auth types
  AuthTokens,
  QRAuthMessage,
  TokenRefreshResponse,
} from './auth.js';

export type {
  // API types
  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';

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

// Additional shared types
export interface TextMeClientConfig {
  baseUrl?: string;
  wsUrl?: string;
  autoReconnect?: boolean;
  maxReconnectAttempts?: number;
  reconnectDelay?: number;
  debug?: boolean;
}
