import { ResponseResult } from "../../../FieldChangeResult";
import { ChatServiceErrorCode } from "../../ChatService";
import { IChatImplementation, IMessage } from "../../IChatService";
export interface IControllerChat extends IChatImplementation {
    GetCachedMessagesAsync(): Promise<IControllerChatMessage[] | ResponseResult<ChatServiceErrorCode>>;
}
export interface IControllerChatMessage extends IMessage {
    get Sender(): ControllerChatSender;
    get MessageType(): ControllerMessageType;
    get MessageSource(): ControllerMessageSource;
    get SenderUserGuid(): string;
    get RecipientUserGuid(): string;
    get TextToSpeechMessage(): string;
    get MessageActions(): Map<ControllerMessageActions, number>;
    get MessageActionsData(): Map<string, any>;
}
export declare enum ControllerChatSender {
    User = 0,
    Controller = 1,
    Marketing = 2
}
export declare enum ControllerMessageType {
    Notification = 0,
    Message = 1,
    Alarm = 2,
    Warning = 3,
    Info = 4
}
export declare enum ControllerMessageSource {
    Other = 0,
    UserLoggedIn = 1,
    UserLoggedOut = 2,
    FoundNewDevice = 3,
    DoorBellPress = 4,
    AddedNewDevice = 5,
    RemovedDevice = 6,
    RegisteredNewUser = 7,
    GotAccessToTheInternet = 8,
    LostAccessToTheInternet = 9,
    RemovedUser = 10,
    NetworkChanged = 11
}
export declare enum ControllerMessageActions {
    WeatherWidget = "WeatherWidget"
}
