@chatscope/use-chat
Version:
React hook for state management in chat applications
27 lines (26 loc) • 1.74 kB
TypeScript
import { IChatService } from "../interfaces/IChatService";
import { ChatEventType, MessageContentType } from "../enums";
import { ChatEventHandler, SendMessageServiceParams, SendTypingServiceParams, UpdateState } from "../Types";
import { IStorage } from "../interfaces";
import { ChatEvent } from "../events";
import { ChatMessage } from "../ChatMessage";
declare type EventHandlers = {
onMessage: ChatEventHandler<ChatEventType.Message, ChatEvent<ChatEventType.Message>>;
onConnectionStateChanged: ChatEventHandler<ChatEventType.ConnectionStateChanged, ChatEvent<ChatEventType.ConnectionStateChanged>>;
onUserConnected: ChatEventHandler<ChatEventType.UserConnected, ChatEvent<ChatEventType.UserConnected>>;
onUserDisconnected: ChatEventHandler<ChatEventType.UserDisconnected, ChatEvent<ChatEventType.UserDisconnected>>;
onUserPresenceChanged: ChatEventHandler<ChatEventType.UserPresenceChanged, ChatEvent<ChatEventType.UserPresenceChanged>>;
onUserTyping: ChatEventHandler<ChatEventType.UserTyping, ChatEvent<ChatEventType.UserTyping>>;
[key: string]: any;
};
export declare class ExampleChatService implements IChatService {
storage?: IStorage;
updateState: UpdateState;
eventHandlers: EventHandlers;
constructor(storage: IStorage, update: UpdateState);
sendMessage({ message, conversationId }: SendMessageServiceParams): ChatMessage<MessageContentType>;
sendTyping({ isTyping, content, conversationId, userId, }: SendTypingServiceParams): void;
on<T extends ChatEventType, H extends ChatEvent<T>>(evtType: T, evtHandler: ChatEventHandler<T, H>): void;
off<T extends ChatEventType, H extends ChatEvent<T>>(evtType: T, eventHandler: ChatEventHandler<T, H>): void;
}
export {};