import { ConfigService } from '@nestjs/config';
import { PrismaService } from "../../../core/database/prisma/prisma.service";
import { EntraService } from '../entra/entra.service';
export interface SyncResult {
    success: boolean;
    totalUsers: number;
    syncedUsers: number;
    createdUsers: number;
    updatedUsers: number;
    skippedUsers: number;
    conflictUsers: number;
    protectedTerminatedUsers: number;
    errors: string[];
    duration: number;
    timestamp: Date;
}
export declare class SyncService {
    private prisma;
    private entraService;
    private configService;
    private readonly logger;
    private isSyncing;
    private lastSyncResult;
    constructor(prisma: PrismaService, entraService: EntraService, configService: ConfigService);
    syncFromEntra(): Promise<SyncResult>;
    private syncSingleUser;
    private hasUserChanges;
    private mapOfficeLocationToRegion;
    private updateUserManager;
    private wouldCreateLoop;
    private syncPosition;
    private updateUserPosition;
    getSyncStatus(): {
        isSyncing: boolean;
        lastSyncTime: Date | null;
        lastSyncResult: SyncResult | null;
    };
    getOrganizationStats(): Promise<{
        users: {
            total: number;
            active: number;
            fromEntra: number;
            local: number;
            terminated: number;
        };
        departments: number;
        positions: number;
        lastSync: Date | null;
    }>;
}
