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
}
