import { OnModuleInit } from '@nestjs/common';
import { PrismaService } from "../../../../core/database/prisma/prisma.service";
import { Prisma } from '@prisma/client';
import type { GraphClient } from '../graph/graph-client.interface';
export declare class M365SyncService implements OnModuleInit {
    private readonly prisma;
    private readonly graph;
    private readonly logger;
    constructor(prisma: PrismaService, graph: GraphClient);
    onModuleInit(): Promise<void>;
    triggerSync(actorId: string, organizationId: string): Promise<{
        executionId: string;
        status: 'RUNNING';
        startedAt: Date;
    }>;
    findLatestSuccessExecution(): Promise<{
        error: string | null;
        id: string;
        createdAt: Date;
        result: Prisma.JsonValue | null;
        status: import("@prisma/client").$Enums.AutomationExecutionStatus;
        duration: number | null;
        logs: string | null;
        startedAt: Date;
        completedAt: Date | null;
        triggerType: string;
        triggeredBy: string | null;
        taskId: string;
    } | null>;
    findLatestExecution(): Promise<{
        error: string | null;
        id: string;
        createdAt: Date;
        result: Prisma.JsonValue | null;
        status: import("@prisma/client").$Enums.AutomationExecutionStatus;
        duration: number | null;
        logs: string | null;
        startedAt: Date;
        completedAt: Date | null;
        triggerType: string;
        triggeredBy: string | null;
        taskId: string;
    } | null>;
    findHistory(limit: number, status?: string): Promise<{
        error: string | null;
        id: string;
        createdAt: Date;
        result: Prisma.JsonValue | null;
        status: import("@prisma/client").$Enums.AutomationExecutionStatus;
        duration: number | null;
        logs: string | null;
        startedAt: Date;
        completedAt: Date | null;
        triggerType: string;
        triggeredBy: string | null;
        taskId: string;
    }[]>;
    private findTask;
    private ensureTask;
    private runSync;
    private enrichUser;
    private toPrismaData;
    private computeDiffs;
    private computeHistogram;
}
