import type { ClientOptions } from '@ably/chat'; import type Ably from 'ably'; import { PublicChatClient, RpcChatClient } from '../unified-clients/RpcChat'; import { testLoggingLevel } from './logger'; import { normalizeClientOptions } from './options'; import { ablyRealtimeClientOptionsWithToken } from './realtime-client'; export const newChatClient = ( options?: ClientOptions, realtimeClientOptions?: Ably.ClientOptions, ): PublicChatClient => { const normalizedOptions = normalizeClientOptions({ ...options, logLevel: options?.logLevel ?? testLoggingLevel(), }); const normalizedRealtimeClientOptions = realtimeClientOptions ?? ablyRealtimeClientOptionsWithToken(); return new RpcChatClient(normalizedRealtimeClientOptions, normalizedOptions); };