import { BringgUserShortDto, ChatMerchantAppDto, ChatUserDto, GetOrCreateChatMembersResultDto, UnreadMessageCount, User } from '@bringg/types';
import RouteGenerator from '../../Core/RouteGenerator';
import Session from '../../Services/Identity/Session';
import { SessionBasedService } from '../../Services/SessionBasedService';
import { ChatResponse } from '../Chat.types';
export default class ChatService extends SessionBasedService {
    entityName: string;
    routeGenerator: RouteGenerator;
    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>>;
}
