import { BringgUserShortDto, ChatMerchantAppDto, ChatUserDto, GetOrCreateChatMembersResultDto, User } from '@bringg/types';
import { UnreadMessageCount } from '@bringg/types/types/chat/chat_user_types';
import Session from '../Services/Identity/Session';
import { ChatResponse } from './Chat.types';
export default class Chat {
    private readonly chatService;
    constructor(session: Session);
    getChatMerchantApp(): Promise<ChatResponse<ChatMerchantAppDto>>;
    getOrCreateChatMerchantApp(): Promise<ChatResponse<ChatMerchantAppDto>>;
    getChatMerchantAppExists(): Promise<ChatResponse<boolean>>;
    getOrCreateChatUser(): Promise<ChatResponse<ChatUserDto>>;
    getUnreadMessageCount(): Promise<ChatResponse<UnreadMessageCount>>;
    getOrCreateChatMembers(bringgUsersIds: Array<User['id']>): Promise<ChatResponse<GetOrCreateChatMembersResultDto>>;
    getUsersAvailableToChat({ bringUserIds }?: {
        bringUserIds?: Array<User['id']>;
    }): Promise<ChatResponse<BringgUserShortDto[]>>;
    configureAutoEventMessage(): Promise<ChatResponse<void>>;
}
