lavva.exalushome
Version:
Library implementing communication and abstraction layers for ExalusHome system
23 lines (22 loc) • 799 B
TypeScript
import { Status } from "../../DataFrame";
import { IDIService } from "../../IDIService";
export interface IChatService extends IDIService {
GetChatImplementation<T extends IChatImplementation>(chatType: ChatType): T;
}
export interface IChatImplementation {
SendMessageAsync(message: string): Promise<Status>;
SubscribeToMessages<T extends IMessage>(messageHandler: MessageHandler<T>): void;
UnsubscribeFromMessages<T extends IMessage>(messageHandler: MessageHandler<T>): void;
}
export type MessageHandler<T extends IMessage> = (msg: T) => void;
export interface IMessage {
get Guid(): string;
get SenderName(): string;
get MessageText(): string;
get DateTime(): string;
}
export declare enum ChatType {
ControllerChat = 0,
FamilyChat = 1,
GptChat = 2
}