import { DatabaseService } from '../../config';
import { NotificationsService } from '../notifications/notifications.service';
import { addEquipmentReturnDto, calculateFinalSettlementDto, createExitInterviewTemplateDto, createOffboardingCaseDto, createOffboardingTaskDto, createOffboardingTemplateDto, filterOffboardingCaseDto, submitExitInterviewDto, updateEquipmentReturnDto, updateOffboardingCaseDto, updateOffboardingTaskDto } from './offboarding.dto';
export declare class OffboardingService {
    private readonly db;
    private readonly notificationsService;
    constructor(db: DatabaseService, notificationsService: NotificationsService);
    createTemplate(data: createOffboardingTemplateDto, ownerId: string): Promise<any>;
    seedDefaultTemplates(ownerId: string): Promise<void>;
    getTemplates(ownerId: string): Promise<any>;
    getTemplateById(id: string, ownerId: string): Promise<any>;
    createCase(data: createOffboardingCaseDto, ownerId: string, initiatedById: string): Promise<any>;
    getCasesByFilter(query: filterOffboardingCaseDto, ownerId: string): Promise<{
        data: any;
        pagination: {
            total: any;
            page: number;
            limit: number;
            totalPages: number;
        };
    }>;
    getCaseById(id: string, ownerId: string): Promise<any>;
    updateCase(id: string, data: updateOffboardingCaseDto, ownerId: string): Promise<any>;
    addTask(caseId: string, data: createOffboardingTaskDto, ownerId: string): Promise<any>;
    updateTask(taskId: string, data: updateOffboardingTaskDto, ownerId: string, currentMemberId?: string): Promise<any>;
    addEquipmentReturn(caseId: string, data: addEquipmentReturnDto, ownerId: string): Promise<any>;
    updateEquipmentReturn(returnId: string, data: updateEquipmentReturnDto, ownerId: string, receiverId?: string): Promise<any>;
    createExitTemplate(data: createExitInterviewTemplateDto, ownerId: string): Promise<any>;
    getExitTemplates(ownerId: string): Promise<any>;
    submitExitInterview(caseId: string, data: submitExitInterviewDto, ownerId: string): Promise<any>;
    getTurnoverAnalytics(ownerId: string): Promise<{
        total_offboarded: any;
        reasons_breakdown: Record<string, number>;
        department_breakdown: Record<string, number>;
    }>;
    calculateFinalSettlement(caseId: string, data: calculateFinalSettlementDto, ownerId: string): Promise<any>;
    approveFinalSettlement(settlementId: string, ownerId: string, approverId: string): Promise<any>;
    getDashboardStats(ownerId: string): Promise<{
        active_cases: any;
        initiated_cases: any;
        pending_settlements: any;
        completed_cases: any;
    }>;
}
