import { ConfigService } from '@nestjs/config';
import { Types } from 'mongoose';
import { ModelsService } from 'src/models/models.service';
import { CommonService } from 'src/common/common.service';
import { TranslationService } from 'src/common/services/translation.service';
import { EmailService } from 'src/common/services/email.service';
import { ActivityService } from 'src/common/services/activity.service';
import { NotificationService } from 'src/notification/notification.service';
import { SmsService } from 'src/common/services/sms.service';
import { AgentDropdownDto, AgentListDto, InviteAgentDto, OnboardingBankDetailsDto, OnboardingDocumentsDto, OnboardingPersonalDetailsDto, RejectAgentDto, SendOtpDto, UpdateAgentDto, VerifyOtpDto } from './dto/agent.dto';
import { DocumentEditRequestListDto, RejectDocumentEditDto, SubmitDocumentEditDto, UpdateProfileDto, VerifyContactChangeDto } from './dto/agent-profile-edit.dto';
export declare class AgentService {
    private readonly models;
    private readonly common;
    private readonly emailService;
    private readonly smsService;
    private readonly activity;
    private readonly notificationService;
    private readonly translationService;
    private readonly configService;
    private readonly logger;
    constructor(models: ModelsService, common: CommonService, emailService: EmailService, smsService: SmsService, activity: ActivityService, notificationService: NotificationService, translationService: TranslationService, configService: ConfigService);
    private t;
    private fail;
    private agentFilter;
    private findAgent;
    private assertContactFree;
    private resolveCategoryIds;
    private activeRegionId;
    private nextAgentNo;
    private categoriesOf;
    private regionView;
    private documentsView;
    private toAgentDto;
    private appBaseUrl;
    private issueOnboardingToken;
    invite(dto: InviteAgentDto, actor: any, lang: string): Promise<{
        status: string;
        message: string;
        data: any;
    }>;
    list(query: AgentListDto, lang: string): Promise<{
        status: string;
        message: string;
        data: any[];
        pagination: {
            total: number;
            page: number;
            limit: number;
            totalPages: number;
            hasNextPage: boolean;
            hasPrevPage: boolean;
        };
    }>;
    summary(lang: string): Promise<{
        status: string;
        message: string;
        data: any;
    }>;
    private searchRegex;
    dropdown(query: AgentDropdownDto, lang: string): Promise<{
        status: string;
        message: string;
        data: any[];
        pagination: {
            total: number;
            page: number;
            limit: number;
            totalPages: number;
            hasNextPage: boolean;
            hasPrevPage: boolean;
        };
    }>;
    assignees(query: AgentDropdownDto, lang: string): Promise<{
        status: string;
        message: string;
        data: any[];
        pagination: {
            total: number;
            page: number;
            limit: number;
            totalPages: number;
            hasNextPage: boolean;
            hasPrevPage: boolean;
        };
    }>;
    getById(id: string, lang: string): Promise<{
        status: string;
        message: string;
        data: any;
    }>;
    update(id: string, dto: UpdateAgentDto, actor: any, lang: string): Promise<{
        message: string;
        status: string;
        data: any;
    }>;
    approve(id: string, actor: any, lang: string): Promise<{
        message: string;
        status: string;
        data: any;
    }>;
    reject(id: string, dto: RejectAgentDto, actor: any, lang: string): Promise<{
        message: string;
        status: string;
        data: any;
    }>;
    reopen(id: string, actor: any, lang: string): Promise<{
        message: string;
        status: string;
        data: any;
    }>;
    private notifyReview;
    resendInvite(id: string, actor: any, lang: string): Promise<{
        status: string;
        message: string;
        data: any;
    }>;
    private newOtp;
    private loadAgent;
    private loadAgentLean;
    private onboardingStep;
    sendOtp(dto: SendOtpDto, lang: string): Promise<{
        status: string;
        message: string;
        data: any;
    }>;
    verifyOtp(dto: VerifyOtpDto, lang: string): Promise<{
        status: string;
        message: string;
        data: any;
    }>;
    logout(agentId: string, lang: string): Promise<{
        status: string;
        message: string;
        data: any;
    }>;
    me(agentId: string, lang: string): Promise<{
        status: string;
        message: string;
        data: any;
    }>;
    private findByOnboardingToken;
    getOnboardingInvite(token: string, lang: string): Promise<{
        status: string;
        message: string;
        data: any;
    }>;
    submitOnboardingPersonalDetails(dto: OnboardingPersonalDetailsDto, lang: string): Promise<{
        status: string;
        message: string;
        data: any;
    }>;
    documentTypes(lang: string): Promise<{
        status: string;
        message: string;
        data: any;
    }>;
    private documentTypeConfigs;
    submitOnboardingDocuments(dto: OnboardingDocumentsDto, lang: string): Promise<{
        status: string;
        message: string;
        data: any;
    }>;
    submitOnboardingBankDetails(dto: OnboardingBankDetailsDto, lang: string): Promise<{
        status: string;
        message: string;
        data: any;
    }>;
    resumeOnboarding(agentId: string, lang: string): Promise<{
        status: string;
        message: string;
        data: any;
    }>;
    dashboard(agentId: string, lang: string): Promise<{
        status: string;
        message: string;
        data: any;
    }>;
    private notifyAdmins;
    private sameBankDetails;
    private stageContactChange;
    updateProfile(agentId: string, dto: UpdateProfileDto, actor: any, lang: string): Promise<{
        status: string;
        message: string;
        data: any;
    }>;
    verifyContactChange(agentId: string, dto: VerifyContactChangeDto, lang: string): Promise<{
        status: string;
        message: string;
        data: any;
    }>;
    private pendingDocumentEditSummary;
    private toDocumentEditDto;
    private findDocumentEditRequest;
    submitDocumentEdit(agentId: string, dto: SubmitDocumentEditDto, actor: any, lang: string): Promise<{
        status: string;
        message: string;
        data: any;
    }>;
    listDocumentEditRequests(query: DocumentEditRequestListDto, lang: string, scopeAgentId?: Types.ObjectId): Promise<{
        status: string;
        message: string;
        data: any[];
        pagination: {
            total: number;
            page: number;
            limit: number;
            totalPages: number;
            hasNextPage: boolean;
            hasPrevPage: boolean;
        };
    }>;
    getDocumentEditRequest(id: string, lang: string, scopeAgentId?: Types.ObjectId): Promise<{
        status: string;
        message: string;
        data: any;
    }>;
    myDocumentEditRequest(agentId: string, lang: string): Promise<{
        status: string;
        message: string;
        data: any;
    }>;
    private findPendingDocumentEditRequest;
    approveDocumentEditRequest(id: string, actor: any, lang: string): Promise<{
        status: string;
        message: string;
        data: any;
    }>;
    rejectDocumentEditRequest(id: string, dto: RejectDocumentEditDto, actor: any, lang: string): Promise<{
        status: string;
        message: string;
        data: any;
    }>;
}
