import { ConfigService } from '@nestjs/config';
import { MakeCallDto, RequestDto } from './dto/call.dto';
import { ModelsService } from 'src/models/models.service';
import { Types } from 'mongoose';
import { CommonService } from 'src/common/common.service';
import { ChatService } from 'src/chat/chat.service';
import { TranslationService } from 'src/common/services/translation.service';
export declare class CallService {
    private readonly configService;
    private readonly model;
    private readonly commonServices;
    private readonly chatService;
    private readonly translationService;
    private readonly AGORA_APP_ID;
    private readonly AGORA_APP_CERTIFICATE;
    private readonly TOKEN_EXPIRATION;
    private callEndTimeouts;
    constructor(configService: ConfigService, model: ModelsService, commonServices: CommonService, chatService: ChatService, translationService: TranslationService);
    generateToken(dto: MakeCallDto): Promise<{
        channelName: string;
        token: string;
        appId: string;
        uid: number;
    }>;
    private buildCallNotification;
    private createCallLogMessage;
    private isUserOnCall;
    private sendCallPush;
    makeCall(req: RequestDto, dto: MakeCallDto): Promise<{
        message: string;
        call_id: Types.ObjectId;
        channel_name: string;
        agora_token: string;
    }>;
    private scheduleCallTimeout;
    handleDisconnect: (token: string, server?: any) => Promise<void>;
    private endUserOneToOneCalls;
    rejoinCall(channelName: string, userId: string, language?: string): Promise<any>;
}
