import { PrismaService } from "../../../core/database/prisma/prisma.service";
import { Prisma, OutlookBootstrapStatus, OutlookBindingSyncMode, OutlookCancellationSource, OutlookManageStatus, OutlookMailboxType } from '@prisma/client';
export declare class OutlookSyncRepository {
    private readonly prisma;
    constructor(prisma: PrismaService);
    findMailboxById(id: string): Prisma.Prisma__OutlookSyncMailboxClient<({
        cursor: {
            id: string;
            createdAt: Date;
            updatedAt: Date;
            lastSyncedAt: Date | null;
            mailboxId: string;
            deltaToken: string;
            lastReconciledAt: Date | null;
        } | null;
        subscriptions: {
            id: string;
            createdAt: Date;
            status: import("@prisma/client").$Enums.OutlookSubscriptionStatus;
            updatedAt: Date;
            resource: string;
            mailboxId: string;
            graphSubscriptionId: string;
            expirationAt: Date;
            lastError: string | null;
        }[];
    } & {
        id: string;
        createdAt: Date;
        updatedAt: Date;
        mailboxEmail: string;
        mailboxType: import("@prisma/client").$Enums.OutlookMailboxType;
        isEnabled: boolean;
        isPrimaryDefault: boolean;
    }) | null, null, import("@prisma/client/runtime/library").DefaultArgs, Prisma.PrismaClientOptions>;
    listEnabledMailboxes(): Prisma.PrismaPromise<{
        id: string;
        createdAt: Date;
        updatedAt: Date;
        mailboxEmail: string;
        mailboxType: import("@prisma/client").$Enums.OutlookMailboxType;
        isEnabled: boolean;
        isPrimaryDefault: boolean;
    }[]>;
    findMailboxByEmail(mailboxEmail: string): Prisma.Prisma__OutlookSyncMailboxClient<{
        id: string;
        createdAt: Date;
        updatedAt: Date;
        mailboxEmail: string;
        mailboxType: import("@prisma/client").$Enums.OutlookMailboxType;
        isEnabled: boolean;
        isPrimaryDefault: boolean;
    } | null, null, import("@prisma/client/runtime/library").DefaultArgs, Prisma.PrismaClientOptions>;
    createMailbox(data: {
        mailboxEmail: string;
        mailboxType: OutlookMailboxType;
        isPrimaryDefault: boolean;
        isEnabled: boolean;
    }): Prisma.Prisma__OutlookSyncMailboxClient<{
        id: string;
        createdAt: Date;
        updatedAt: Date;
        mailboxEmail: string;
        mailboxType: import("@prisma/client").$Enums.OutlookMailboxType;
        isEnabled: boolean;
        isPrimaryDefault: boolean;
    }, never, import("@prisma/client/runtime/library").DefaultArgs, Prisma.PrismaClientOptions>;
    updateMailboxStatus(id: string, isEnabled: boolean): Promise<{
        id: string;
        createdAt: Date;
        updatedAt: Date;
        mailboxEmail: string;
        mailboxType: import("@prisma/client").$Enums.OutlookMailboxType;
        isEnabled: boolean;
        isPrimaryDefault: boolean;
    }>;
    setPrimaryDefault(id: string, isPrimaryDefault: boolean): Promise<{
        id: string;
        createdAt: Date;
        updatedAt: Date;
        mailboxEmail: string;
        mailboxType: import("@prisma/client").$Enums.OutlookMailboxType;
        isEnabled: boolean;
        isPrimaryDefault: boolean;
    }>;
    getLatestActiveSubscription(mailboxId: string): Prisma.Prisma__OutlookSubscriptionClient<{
        id: string;
        createdAt: Date;
        status: import("@prisma/client").$Enums.OutlookSubscriptionStatus;
        updatedAt: Date;
        resource: string;
        mailboxId: string;
        graphSubscriptionId: string;
        expirationAt: Date;
        lastError: string | null;
    } | null, null, import("@prisma/client/runtime/library").DefaultArgs, Prisma.PrismaClientOptions>;
    createSubscription(data: Prisma.OutlookSubscriptionCreateInput): Prisma.Prisma__OutlookSubscriptionClient<{
        id: string;
        createdAt: Date;
        status: import("@prisma/client").$Enums.OutlookSubscriptionStatus;
        updatedAt: Date;
        resource: string;
        mailboxId: string;
        graphSubscriptionId: string;
        expirationAt: Date;
        lastError: string | null;
    }, never, import("@prisma/client/runtime/library").DefaultArgs, Prisma.PrismaClientOptions>;
    updateSubscription(id: string, data: Prisma.OutlookSubscriptionUpdateInput): Prisma.Prisma__OutlookSubscriptionClient<{
        id: string;
        createdAt: Date;
        status: import("@prisma/client").$Enums.OutlookSubscriptionStatus;
        updatedAt: Date;
        resource: string;
        mailboxId: string;
        graphSubscriptionId: string;
        expirationAt: Date;
        lastError: string | null;
    }, never, import("@prisma/client/runtime/library").DefaultArgs, Prisma.PrismaClientOptions>;
    findSubscriptionByGraphSubscriptionId(graphSubscriptionId: string): Prisma.Prisma__OutlookSubscriptionClient<({
        mailbox: {
            id: string;
            createdAt: Date;
            updatedAt: Date;
            mailboxEmail: string;
            mailboxType: import("@prisma/client").$Enums.OutlookMailboxType;
            isEnabled: boolean;
            isPrimaryDefault: boolean;
        };
    } & {
        id: string;
        createdAt: Date;
        status: import("@prisma/client").$Enums.OutlookSubscriptionStatus;
        updatedAt: Date;
        resource: string;
        mailboxId: string;
        graphSubscriptionId: string;
        expirationAt: Date;
        lastError: string | null;
    }) | null, null, import("@prisma/client/runtime/library").DefaultArgs, Prisma.PrismaClientOptions>;
    listSubscriptionsToRenew(renewBefore: Date): Prisma.PrismaPromise<({
        mailbox: {
            id: string;
            createdAt: Date;
            updatedAt: Date;
            mailboxEmail: string;
            mailboxType: import("@prisma/client").$Enums.OutlookMailboxType;
            isEnabled: boolean;
            isPrimaryDefault: boolean;
        };
    } & {
        id: string;
        createdAt: Date;
        status: import("@prisma/client").$Enums.OutlookSubscriptionStatus;
        updatedAt: Date;
        resource: string;
        mailboxId: string;
        graphSubscriptionId: string;
        expirationAt: Date;
        lastError: string | null;
    })[]>;
    markMailboxSubscriptionsDisabled(mailboxId: string): Promise<void>;
    getOrCreateSettings(): Promise<{
        id: string;
        createdAt: Date;
        updatedAt: Date;
        reconcileCron: string;
        deltaBatchSize: number;
        lookaheadDays: number;
        lookbackDays: number;
        renewBeforeMinutes: number;
        includeOrganizerAsAttendee: boolean;
    }>;
    updateSettings(data: Prisma.OutlookSyncSettingUpdateInput): Prisma.Prisma__OutlookSyncSettingClient<{
        id: string;
        createdAt: Date;
        updatedAt: Date;
        reconcileCron: string;
        deltaBatchSize: number;
        lookaheadDays: number;
        lookbackDays: number;
        renewBeforeMinutes: number;
        includeOrganizerAsAttendee: boolean;
    }, never, import("@prisma/client/runtime/library").DefaultArgs, Prisma.PrismaClientOptions>;
    listBindingsByMailbox(mailboxId: string): Prisma.PrismaPromise<{
        id: string;
        createdAt: Date;
        updatedAt: Date;
        meetingId: string | null;
        lastSyncedAt: Date | null;
        meetingSeriesId: string | null;
        graphEventId: string;
        iCalUId: string;
        graphSeriesMasterId: string | null;
        graphEventType: string;
        manageStatus: import("@prisma/client").$Enums.OutlookManageStatus;
        bootstrapStatus: import("@prisma/client").$Enums.OutlookBootstrapStatus | null;
        bootstrapError: string | null;
        bootstrapUpdatedAt: Date | null;
        ownerUserId: string | null;
        ownerEmail: string | null;
        primaryMailboxId: string;
        syncFrom: Date;
        cancellationSource: import("@prisma/client").$Enums.OutlookCancellationSource | null;
        syncMode: import("@prisma/client").$Enums.OutlookBindingSyncMode;
        localOverrideAt: Date | null;
        localOverrideByUserId: string | null;
        localOverrideByEmail: string | null;
        localOverrideReason: string | null;
        localOverrideFields: Prisma.JsonValue | null;
    }[]>;
    upsertBindingByGraphEvent(graphEventId: string, data: Prisma.OutlookMeetingBindingUncheckedCreateInput, update: Prisma.OutlookMeetingBindingUncheckedUpdateInput): Prisma.Prisma__OutlookMeetingBindingClient<{
        id: string;
        createdAt: Date;
        updatedAt: Date;
        meetingId: string | null;
        lastSyncedAt: Date | null;
        meetingSeriesId: string | null;
        graphEventId: string;
        iCalUId: string;
        graphSeriesMasterId: string | null;
        graphEventType: string;
        manageStatus: import("@prisma/client").$Enums.OutlookManageStatus;
        bootstrapStatus: import("@prisma/client").$Enums.OutlookBootstrapStatus | null;
        bootstrapError: string | null;
        bootstrapUpdatedAt: Date | null;
        ownerUserId: string | null;
        ownerEmail: string | null;
        primaryMailboxId: string;
        syncFrom: Date;
        cancellationSource: import("@prisma/client").$Enums.OutlookCancellationSource | null;
        syncMode: import("@prisma/client").$Enums.OutlookBindingSyncMode;
        localOverrideAt: Date | null;
        localOverrideByUserId: string | null;
        localOverrideByEmail: string | null;
        localOverrideReason: string | null;
        localOverrideFields: Prisma.JsonValue | null;
    }, never, import("@prisma/client/runtime/library").DefaultArgs, Prisma.PrismaClientOptions>;
    findBindingByGraphEventId(graphEventId: string): Prisma.Prisma__OutlookMeetingBindingClient<({
        meeting: {
            type: import("@prisma/client").$Enums.MeetingType;
            location: string | null;
            title: string;
            id: string;
            createdAt: Date;
            status: import("@prisma/client").$Enums.MeetingStatus;
            updatedAt: Date;
            description: string | null;
            startTime: Date;
            endTime: Date;
            timezone: string;
            creatorId: string;
            qrCodeOnline: string | null;
            qrCodeOffline: string | null;
            seriesId: string | null;
            instanceNumber: number | null;
            isSeriesMaster: boolean;
            hasCustomAttendees: boolean;
            city: string | null;
            enforceCheckinMode: boolean;
        } | null;
        primaryMailbox: {
            id: string;
            createdAt: Date;
            updatedAt: Date;
            mailboxEmail: string;
            mailboxType: import("@prisma/client").$Enums.OutlookMailboxType;
            isEnabled: boolean;
            isPrimaryDefault: boolean;
        };
    } & {
        id: string;
        createdAt: Date;
        updatedAt: Date;
        meetingId: string | null;
        lastSyncedAt: Date | null;
        meetingSeriesId: string | null;
        graphEventId: string;
        iCalUId: string;
        graphSeriesMasterId: string | null;
        graphEventType: string;
        manageStatus: import("@prisma/client").$Enums.OutlookManageStatus;
        bootstrapStatus: import("@prisma/client").$Enums.OutlookBootstrapStatus | null;
        bootstrapError: string | null;
        bootstrapUpdatedAt: Date | null;
        ownerUserId: string | null;
        ownerEmail: string | null;
        primaryMailboxId: string;
        syncFrom: Date;
        cancellationSource: import("@prisma/client").$Enums.OutlookCancellationSource | null;
        syncMode: import("@prisma/client").$Enums.OutlookBindingSyncMode;
        localOverrideAt: Date | null;
        localOverrideByUserId: string | null;
        localOverrideByEmail: string | null;
        localOverrideReason: string | null;
        localOverrideFields: Prisma.JsonValue | null;
    }) | null, null, import("@prisma/client/runtime/library").DefaultArgs, Prisma.PrismaClientOptions>;
    findBindingById(id: string): Prisma.Prisma__OutlookMeetingBindingClient<({
        meeting: {
            type: import("@prisma/client").$Enums.MeetingType;
            location: string | null;
            title: string;
            id: string;
            createdAt: Date;
            status: import("@prisma/client").$Enums.MeetingStatus;
            updatedAt: Date;
            description: string | null;
            startTime: Date;
            endTime: Date;
            timezone: string;
            creatorId: string;
            qrCodeOnline: string | null;
            qrCodeOffline: string | null;
            seriesId: string | null;
            instanceNumber: number | null;
            isSeriesMaster: boolean;
            hasCustomAttendees: boolean;
            city: string | null;
            enforceCheckinMode: boolean;
        } | null;
        meetingSeries: {
            type: import("@prisma/client").$Enums.MeetingType;
            location: string | null;
            title: string;
            id: string;
            createdAt: Date;
            startDate: Date;
            endDate: Date | null;
            updatedAt: Date;
            description: string | null;
            isActive: boolean;
            timezone: string;
            frequency: number;
            creatorId: string;
            city: string | null;
            enforceCheckinMode: boolean;
            pattern: import("@prisma/client").$Enums.RecurrencePattern;
            maxOccurrences: number | null;
        } | null;
        primaryMailbox: {
            id: string;
            createdAt: Date;
            updatedAt: Date;
            mailboxEmail: string;
            mailboxType: import("@prisma/client").$Enums.OutlookMailboxType;
            isEnabled: boolean;
            isPrimaryDefault: boolean;
        };
        occurrenceExclusions: {
            id: string;
            createdAt: Date;
            updatedAt: Date;
            reason: string | null;
            iCalUId: string | null;
            bindingId: string;
            occurrenceGraphEventId: string;
            createdByEmail: string | null;
        }[];
    } & {
        id: string;
        createdAt: Date;
        updatedAt: Date;
        meetingId: string | null;
        lastSyncedAt: Date | null;
        meetingSeriesId: string | null;
        graphEventId: string;
        iCalUId: string;
        graphSeriesMasterId: string | null;
        graphEventType: string;
        manageStatus: import("@prisma/client").$Enums.OutlookManageStatus;
        bootstrapStatus: import("@prisma/client").$Enums.OutlookBootstrapStatus | null;
        bootstrapError: string | null;
        bootstrapUpdatedAt: Date | null;
        ownerUserId: string | null;
        ownerEmail: string | null;
        primaryMailboxId: string;
        syncFrom: Date;
        cancellationSource: import("@prisma/client").$Enums.OutlookCancellationSource | null;
        syncMode: import("@prisma/client").$Enums.OutlookBindingSyncMode;
        localOverrideAt: Date | null;
        localOverrideByUserId: string | null;
        localOverrideByEmail: string | null;
        localOverrideReason: string | null;
        localOverrideFields: Prisma.JsonValue | null;
    }) | null, null, import("@prisma/client/runtime/library").DefaultArgs, Prisma.PrismaClientOptions>;
    findBindingByMeetingId(meetingId: string): Prisma.Prisma__OutlookMeetingBindingClient<({
        meeting: {
            type: import("@prisma/client").$Enums.MeetingType;
            location: string | null;
            title: string;
            id: string;
            createdAt: Date;
            status: import("@prisma/client").$Enums.MeetingStatus;
            updatedAt: Date;
            description: string | null;
            startTime: Date;
            endTime: Date;
            timezone: string;
            creatorId: string;
            qrCodeOnline: string | null;
            qrCodeOffline: string | null;
            seriesId: string | null;
            instanceNumber: number | null;
            isSeriesMaster: boolean;
            hasCustomAttendees: boolean;
            city: string | null;
            enforceCheckinMode: boolean;
        } | null;
        meetingSeries: {
            type: import("@prisma/client").$Enums.MeetingType;
            location: string | null;
            title: string;
            id: string;
            createdAt: Date;
            startDate: Date;
            endDate: Date | null;
            updatedAt: Date;
            description: string | null;
            isActive: boolean;
            timezone: string;
            frequency: number;
            creatorId: string;
            city: string | null;
            enforceCheckinMode: boolean;
            pattern: import("@prisma/client").$Enums.RecurrencePattern;
            maxOccurrences: number | null;
        } | null;
        primaryMailbox: {
            id: string;
            createdAt: Date;
            updatedAt: Date;
            mailboxEmail: string;
            mailboxType: import("@prisma/client").$Enums.OutlookMailboxType;
            isEnabled: boolean;
            isPrimaryDefault: boolean;
        };
    } & {
        id: string;
        createdAt: Date;
        updatedAt: Date;
        meetingId: string | null;
        lastSyncedAt: Date | null;
        meetingSeriesId: string | null;
        graphEventId: string;
        iCalUId: string;
        graphSeriesMasterId: string | null;
        graphEventType: string;
        manageStatus: import("@prisma/client").$Enums.OutlookManageStatus;
        bootstrapStatus: import("@prisma/client").$Enums.OutlookBootstrapStatus | null;
        bootstrapError: string | null;
        bootstrapUpdatedAt: Date | null;
        ownerUserId: string | null;
        ownerEmail: string | null;
        primaryMailboxId: string;
        syncFrom: Date;
        cancellationSource: import("@prisma/client").$Enums.OutlookCancellationSource | null;
        syncMode: import("@prisma/client").$Enums.OutlookBindingSyncMode;
        localOverrideAt: Date | null;
        localOverrideByUserId: string | null;
        localOverrideByEmail: string | null;
        localOverrideReason: string | null;
        localOverrideFields: Prisma.JsonValue | null;
    }) | null, null, import("@prisma/client/runtime/library").DefaultArgs, Prisma.PrismaClientOptions>;
    findBindingsByGraphEventId(graphEventId: string): Prisma.PrismaPromise<({
        meeting: {
            type: import("@prisma/client").$Enums.MeetingType;
            location: string | null;
            title: string;
            id: string;
            createdAt: Date;
            status: import("@prisma/client").$Enums.MeetingStatus;
            updatedAt: Date;
            description: string | null;
            startTime: Date;
            endTime: Date;
            timezone: string;
            creatorId: string;
            qrCodeOnline: string | null;
            qrCodeOffline: string | null;
            seriesId: string | null;
            instanceNumber: number | null;
            isSeriesMaster: boolean;
            hasCustomAttendees: boolean;
            city: string | null;
            enforceCheckinMode: boolean;
        } | null;
    } & {
        id: string;
        createdAt: Date;
        updatedAt: Date;
        meetingId: string | null;
        lastSyncedAt: Date | null;
        meetingSeriesId: string | null;
        graphEventId: string;
        iCalUId: string;
        graphSeriesMasterId: string | null;
        graphEventType: string;
        manageStatus: import("@prisma/client").$Enums.OutlookManageStatus;
        bootstrapStatus: import("@prisma/client").$Enums.OutlookBootstrapStatus | null;
        bootstrapError: string | null;
        bootstrapUpdatedAt: Date | null;
        ownerUserId: string | null;
        ownerEmail: string | null;
        primaryMailboxId: string;
        syncFrom: Date;
        cancellationSource: import("@prisma/client").$Enums.OutlookCancellationSource | null;
        syncMode: import("@prisma/client").$Enums.OutlookBindingSyncMode;
        localOverrideAt: Date | null;
        localOverrideByUserId: string | null;
        localOverrideByEmail: string | null;
        localOverrideReason: string | null;
        localOverrideFields: Prisma.JsonValue | null;
    })[]>;
    findBindingsByGraphEventIds(graphEventIds: string[]): Promise<never[]> | Prisma.PrismaPromise<({
        meeting: {
            type: import("@prisma/client").$Enums.MeetingType;
            location: string | null;
            title: string;
            id: string;
            createdAt: Date;
            status: import("@prisma/client").$Enums.MeetingStatus;
            updatedAt: Date;
            description: string | null;
            startTime: Date;
            endTime: Date;
            timezone: string;
            creatorId: string;
            qrCodeOnline: string | null;
            qrCodeOffline: string | null;
            seriesId: string | null;
            instanceNumber: number | null;
            isSeriesMaster: boolean;
            hasCustomAttendees: boolean;
            city: string | null;
            enforceCheckinMode: boolean;
        } | null;
    } & {
        id: string;
        createdAt: Date;
        updatedAt: Date;
        meetingId: string | null;
        lastSyncedAt: Date | null;
        meetingSeriesId: string | null;
        graphEventId: string;
        iCalUId: string;
        graphSeriesMasterId: string | null;
        graphEventType: string;
        manageStatus: import("@prisma/client").$Enums.OutlookManageStatus;
        bootstrapStatus: import("@prisma/client").$Enums.OutlookBootstrapStatus | null;
        bootstrapError: string | null;
        bootstrapUpdatedAt: Date | null;
        ownerUserId: string | null;
        ownerEmail: string | null;
        primaryMailboxId: string;
        syncFrom: Date;
        cancellationSource: import("@prisma/client").$Enums.OutlookCancellationSource | null;
        syncMode: import("@prisma/client").$Enums.OutlookBindingSyncMode;
        localOverrideAt: Date | null;
        localOverrideByUserId: string | null;
        localOverrideByEmail: string | null;
        localOverrideReason: string | null;
        localOverrideFields: Prisma.JsonValue | null;
    })[]>;
    listManagedSeriesBindingsByMailbox(mailboxId: string): Prisma.PrismaPromise<({
        occurrenceExclusions: {
            id: string;
            createdAt: Date;
            updatedAt: Date;
            reason: string | null;
            iCalUId: string | null;
            bindingId: string;
            occurrenceGraphEventId: string;
            createdByEmail: string | null;
        }[];
    } & {
        id: string;
        createdAt: Date;
        updatedAt: Date;
        meetingId: string | null;
        lastSyncedAt: Date | null;
        meetingSeriesId: string | null;
        graphEventId: string;
        iCalUId: string;
        graphSeriesMasterId: string | null;
        graphEventType: string;
        manageStatus: import("@prisma/client").$Enums.OutlookManageStatus;
        bootstrapStatus: import("@prisma/client").$Enums.OutlookBootstrapStatus | null;
        bootstrapError: string | null;
        bootstrapUpdatedAt: Date | null;
        ownerUserId: string | null;
        ownerEmail: string | null;
        primaryMailboxId: string;
        syncFrom: Date;
        cancellationSource: import("@prisma/client").$Enums.OutlookCancellationSource | null;
        syncMode: import("@prisma/client").$Enums.OutlookBindingSyncMode;
        localOverrideAt: Date | null;
        localOverrideByUserId: string | null;
        localOverrideByEmail: string | null;
        localOverrideReason: string | null;
        localOverrideFields: Prisma.JsonValue | null;
    })[]>;
    listManagedSeriesBindings(): Prisma.PrismaPromise<({
        occurrenceExclusions: {
            id: string;
            createdAt: Date;
            updatedAt: Date;
            reason: string | null;
            iCalUId: string | null;
            bindingId: string;
            occurrenceGraphEventId: string;
            createdByEmail: string | null;
        }[];
    } & {
        id: string;
        createdAt: Date;
        updatedAt: Date;
        meetingId: string | null;
        lastSyncedAt: Date | null;
        meetingSeriesId: string | null;
        graphEventId: string;
        iCalUId: string;
        graphSeriesMasterId: string | null;
        graphEventType: string;
        manageStatus: import("@prisma/client").$Enums.OutlookManageStatus;
        bootstrapStatus: import("@prisma/client").$Enums.OutlookBootstrapStatus | null;
        bootstrapError: string | null;
        bootstrapUpdatedAt: Date | null;
        ownerUserId: string | null;
        ownerEmail: string | null;
        primaryMailboxId: string;
        syncFrom: Date;
        cancellationSource: import("@prisma/client").$Enums.OutlookCancellationSource | null;
        syncMode: import("@prisma/client").$Enums.OutlookBindingSyncMode;
        localOverrideAt: Date | null;
        localOverrideByUserId: string | null;
        localOverrideByEmail: string | null;
        localOverrideReason: string | null;
        localOverrideFields: Prisma.JsonValue | null;
    })[]>;
    isSeriesOccurrenceExcluded(bindingId: string, occurrenceGraphEventId: string): Promise<boolean>;
    createSeriesOccurrenceExclusion(data: Prisma.OutlookSeriesOccurrenceExclusionUncheckedCreateInput): Prisma.Prisma__OutlookSeriesOccurrenceExclusionClient<{
        id: string;
        createdAt: Date;
        updatedAt: Date;
        reason: string | null;
        iCalUId: string | null;
        bindingId: string;
        occurrenceGraphEventId: string;
        createdByEmail: string | null;
    }, never, import("@prisma/client/runtime/library").DefaultArgs, Prisma.PrismaClientOptions>;
    deleteSeriesOccurrenceExclusion(id: string): Prisma.Prisma__OutlookSeriesOccurrenceExclusionClient<{
        id: string;
        createdAt: Date;
        updatedAt: Date;
        reason: string | null;
        iCalUId: string | null;
        bindingId: string;
        occurrenceGraphEventId: string;
        createdByEmail: string | null;
    }, never, import("@prisma/client/runtime/library").DefaultArgs, Prisma.PrismaClientOptions>;
    findSeriesOccurrenceExclusionById(id: string): Prisma.Prisma__OutlookSeriesOccurrenceExclusionClient<({
        binding: {
            id: string;
            createdAt: Date;
            updatedAt: Date;
            meetingId: string | null;
            lastSyncedAt: Date | null;
            meetingSeriesId: string | null;
            graphEventId: string;
            iCalUId: string;
            graphSeriesMasterId: string | null;
            graphEventType: string;
            manageStatus: import("@prisma/client").$Enums.OutlookManageStatus;
            bootstrapStatus: import("@prisma/client").$Enums.OutlookBootstrapStatus | null;
            bootstrapError: string | null;
            bootstrapUpdatedAt: Date | null;
            ownerUserId: string | null;
            ownerEmail: string | null;
            primaryMailboxId: string;
            syncFrom: Date;
            cancellationSource: import("@prisma/client").$Enums.OutlookCancellationSource | null;
            syncMode: import("@prisma/client").$Enums.OutlookBindingSyncMode;
            localOverrideAt: Date | null;
            localOverrideByUserId: string | null;
            localOverrideByEmail: string | null;
            localOverrideReason: string | null;
            localOverrideFields: Prisma.JsonValue | null;
        };
    } & {
        id: string;
        createdAt: Date;
        updatedAt: Date;
        reason: string | null;
        iCalUId: string | null;
        bindingId: string;
        occurrenceGraphEventId: string;
        createdByEmail: string | null;
    }) | null, null, import("@prisma/client/runtime/library").DefaultArgs, Prisma.PrismaClientOptions>;
    listSeriesOccurrenceExclusions(params: {
        bindingId: string;
        page: number;
        pageSize: number;
    }): Prisma.PrismaPromise<{
        id: string;
        createdAt: Date;
        updatedAt: Date;
        reason: string | null;
        iCalUId: string | null;
        bindingId: string;
        occurrenceGraphEventId: string;
        createdByEmail: string | null;
    }[]>;
    countSeriesOccurrenceExclusions(bindingId: string): Prisma.PrismaPromise<number>;
    updateBindingSyncState(id: string, data: {
        manageStatus?: OutlookManageStatus;
        cancellationSource?: OutlookCancellationSource | null;
        syncMode?: OutlookBindingSyncMode;
        localOverrideAt?: Date | null;
        localOverrideByUserId?: string | null;
        localOverrideByEmail?: string | null;
        localOverrideReason?: string | null;
        localOverrideFields?: Prisma.InputJsonValue | null;
        lastSyncedAt?: Date;
        bootstrapStatus?: OutlookBootstrapStatus | null;
        bootstrapError?: string | null;
        bootstrapUpdatedAt?: Date | null;
    }): Prisma.Prisma__OutlookMeetingBindingClient<{
        id: string;
        createdAt: Date;
        updatedAt: Date;
        meetingId: string | null;
        lastSyncedAt: Date | null;
        meetingSeriesId: string | null;
        graphEventId: string;
        iCalUId: string;
        graphSeriesMasterId: string | null;
        graphEventType: string;
        manageStatus: import("@prisma/client").$Enums.OutlookManageStatus;
        bootstrapStatus: import("@prisma/client").$Enums.OutlookBootstrapStatus | null;
        bootstrapError: string | null;
        bootstrapUpdatedAt: Date | null;
        ownerUserId: string | null;
        ownerEmail: string | null;
        primaryMailboxId: string;
        syncFrom: Date;
        cancellationSource: import("@prisma/client").$Enums.OutlookCancellationSource | null;
        syncMode: import("@prisma/client").$Enums.OutlookBindingSyncMode;
        localOverrideAt: Date | null;
        localOverrideByUserId: string | null;
        localOverrideByEmail: string | null;
        localOverrideReason: string | null;
        localOverrideFields: Prisma.JsonValue | null;
    }, never, import("@prisma/client/runtime/library").DefaultArgs, Prisma.PrismaClientOptions>;
    lockBindingByLocalOverride(params: {
        id: string;
        userId?: string | null;
        email?: string | null;
        reason: string;
        fields?: Prisma.InputJsonValue | null;
    }): Prisma.Prisma__OutlookMeetingBindingClient<{
        id: string;
        createdAt: Date;
        updatedAt: Date;
        meetingId: string | null;
        lastSyncedAt: Date | null;
        meetingSeriesId: string | null;
        graphEventId: string;
        iCalUId: string;
        graphSeriesMasterId: string | null;
        graphEventType: string;
        manageStatus: import("@prisma/client").$Enums.OutlookManageStatus;
        bootstrapStatus: import("@prisma/client").$Enums.OutlookBootstrapStatus | null;
        bootstrapError: string | null;
        bootstrapUpdatedAt: Date | null;
        ownerUserId: string | null;
        ownerEmail: string | null;
        primaryMailboxId: string;
        syncFrom: Date;
        cancellationSource: import("@prisma/client").$Enums.OutlookCancellationSource | null;
        syncMode: import("@prisma/client").$Enums.OutlookBindingSyncMode;
        localOverrideAt: Date | null;
        localOverrideByUserId: string | null;
        localOverrideByEmail: string | null;
        localOverrideReason: string | null;
        localOverrideFields: Prisma.JsonValue | null;
    }, never, import("@prisma/client/runtime/library").DefaultArgs, Prisma.PrismaClientOptions>;
    updateBindingMeetingLink(id: string, data: {
        meetingId?: string | null;
        meetingSeriesId?: string | null;
    }): Prisma.Prisma__OutlookMeetingBindingClient<{
        id: string;
        createdAt: Date;
        updatedAt: Date;
        meetingId: string | null;
        lastSyncedAt: Date | null;
        meetingSeriesId: string | null;
        graphEventId: string;
        iCalUId: string;
        graphSeriesMasterId: string | null;
        graphEventType: string;
        manageStatus: import("@prisma/client").$Enums.OutlookManageStatus;
        bootstrapStatus: import("@prisma/client").$Enums.OutlookBootstrapStatus | null;
        bootstrapError: string | null;
        bootstrapUpdatedAt: Date | null;
        ownerUserId: string | null;
        ownerEmail: string | null;
        primaryMailboxId: string;
        syncFrom: Date;
        cancellationSource: import("@prisma/client").$Enums.OutlookCancellationSource | null;
        syncMode: import("@prisma/client").$Enums.OutlookBindingSyncMode;
        localOverrideAt: Date | null;
        localOverrideByUserId: string | null;
        localOverrideByEmail: string | null;
        localOverrideReason: string | null;
        localOverrideFields: Prisma.JsonValue | null;
    }, never, import("@prisma/client/runtime/library").DefaultArgs, Prisma.PrismaClientOptions>;
    takeoverBinding(params: {
        id: string;
        ownerUserId: string;
        ownerEmail: string;
        primaryMailboxId: string;
        syncFrom: Date;
    }): Prisma.Prisma__OutlookMeetingBindingClient<{
        id: string;
        createdAt: Date;
        updatedAt: Date;
        meetingId: string | null;
        lastSyncedAt: Date | null;
        meetingSeriesId: string | null;
        graphEventId: string;
        iCalUId: string;
        graphSeriesMasterId: string | null;
        graphEventType: string;
        manageStatus: import("@prisma/client").$Enums.OutlookManageStatus;
        bootstrapStatus: import("@prisma/client").$Enums.OutlookBootstrapStatus | null;
        bootstrapError: string | null;
        bootstrapUpdatedAt: Date | null;
        ownerUserId: string | null;
        ownerEmail: string | null;
        primaryMailboxId: string;
        syncFrom: Date;
        cancellationSource: import("@prisma/client").$Enums.OutlookCancellationSource | null;
        syncMode: import("@prisma/client").$Enums.OutlookBindingSyncMode;
        localOverrideAt: Date | null;
        localOverrideByUserId: string | null;
        localOverrideByEmail: string | null;
        localOverrideReason: string | null;
        localOverrideFields: Prisma.JsonValue | null;
    }, never, import("@prisma/client/runtime/library").DefaultArgs, Prisma.PrismaClientOptions>;
    createBindingSyncEventLog(params: {
        bindingId: string;
        mailboxId: string;
        eventType: string;
        resultStatus?: string;
        message?: string | null;
        payload?: Prisma.InputJsonValue;
    }): any;
    getLatestSourceVersion(bindingId: string): any;
    createSourceVersion(data: Prisma.OutlookEventSourceVersionUncheckedCreateInput): any;
    createSyncDiff(data: Prisma.OutlookEventSyncDiffUncheckedCreateInput): any;
    listBindingSyncEventLogs(params: {
        bindingId: string;
        page: number;
        pageSize: number;
        startDate?: Date;
        endDate?: Date;
        eventType?: string;
        stage?: string;
        onlyError?: boolean;
    }): any;
    countBindingSyncEventLogs(params: {
        bindingId: string;
        startDate?: Date;
        endDate?: Date;
        eventType?: string;
        stage?: string;
        onlyError?: boolean;
    }): any;
    listBindingSyncEventLogsForExport(params: {
        bindingId: string;
        startDate?: Date;
        endDate?: Date;
        eventType?: string;
        stage?: string;
        onlyError?: boolean;
        maxRows: number;
    }): any;
    private buildBindingSyncEventLogWhere;
    listManagedBindings(params: {
        mailboxId: string;
        keyword?: string;
        eventType?: string;
        status?: string;
        page: number;
        pageSize: number;
    }): Prisma.PrismaPromise<({
        meeting: {
            title: string;
            id: string;
            status: import("@prisma/client").$Enums.MeetingStatus;
            startTime: Date;
            endTime: Date;
            timezone: string;
        } | null;
        meetingSeries: {
            title: string;
            id: string;
            startDate: Date;
            timezone: string;
        } | null;
    } & {
        id: string;
        createdAt: Date;
        updatedAt: Date;
        meetingId: string | null;
        lastSyncedAt: Date | null;
        meetingSeriesId: string | null;
        graphEventId: string;
        iCalUId: string;
        graphSeriesMasterId: string | null;
        graphEventType: string;
        manageStatus: import("@prisma/client").$Enums.OutlookManageStatus;
        bootstrapStatus: import("@prisma/client").$Enums.OutlookBootstrapStatus | null;
        bootstrapError: string | null;
        bootstrapUpdatedAt: Date | null;
        ownerUserId: string | null;
        ownerEmail: string | null;
        primaryMailboxId: string;
        syncFrom: Date;
        cancellationSource: import("@prisma/client").$Enums.OutlookCancellationSource | null;
        syncMode: import("@prisma/client").$Enums.OutlookBindingSyncMode;
        localOverrideAt: Date | null;
        localOverrideByUserId: string | null;
        localOverrideByEmail: string | null;
        localOverrideReason: string | null;
        localOverrideFields: Prisma.JsonValue | null;
    })[]>;
    countManagedBindings(params: {
        mailboxId: string;
        keyword?: string;
        eventType?: string;
        status?: string;
    }): Prisma.PrismaPromise<number>;
    listAllManagedBindings(params: {
        keyword?: string;
        eventType?: string;
        status?: string;
        page: number;
        pageSize: number;
    }): Prisma.PrismaPromise<({
        meeting: {
            title: string;
            id: string;
            status: import("@prisma/client").$Enums.MeetingStatus;
            startTime: Date;
            endTime: Date;
            timezone: string;
        } | null;
        meetingSeries: {
            title: string;
            id: string;
            startDate: Date;
            timezone: string;
        } | null;
        primaryMailbox: {
            id: string;
            mailboxEmail: string;
        };
    } & {
        id: string;
        createdAt: Date;
        updatedAt: Date;
        meetingId: string | null;
        lastSyncedAt: Date | null;
        meetingSeriesId: string | null;
        graphEventId: string;
        iCalUId: string;
        graphSeriesMasterId: string | null;
        graphEventType: string;
        manageStatus: import("@prisma/client").$Enums.OutlookManageStatus;
        bootstrapStatus: import("@prisma/client").$Enums.OutlookBootstrapStatus | null;
        bootstrapError: string | null;
        bootstrapUpdatedAt: Date | null;
        ownerUserId: string | null;
        ownerEmail: string | null;
        primaryMailboxId: string;
        syncFrom: Date;
        cancellationSource: import("@prisma/client").$Enums.OutlookCancellationSource | null;
        syncMode: import("@prisma/client").$Enums.OutlookBindingSyncMode;
        localOverrideAt: Date | null;
        localOverrideByUserId: string | null;
        localOverrideByEmail: string | null;
        localOverrideReason: string | null;
        localOverrideFields: Prisma.JsonValue | null;
    })[]>;
    countAllManagedBindings(params: {
        keyword?: string;
        eventType?: string;
        status?: string;
    }): Prisma.PrismaPromise<number>;
    listManagedSeriesChildren(params: {
        seriesMasterId: string;
        mailboxId?: string;
    }): Prisma.PrismaPromise<({
        meeting: {
            title: string;
            id: string;
            status: import("@prisma/client").$Enums.MeetingStatus;
            startTime: Date;
            endTime: Date;
            timezone: string;
        } | null;
        meetingSeries: {
            title: string;
            id: string;
            startDate: Date;
            timezone: string;
        } | null;
        primaryMailbox: {
            id: string;
            mailboxEmail: string;
        };
    } & {
        id: string;
        createdAt: Date;
        updatedAt: Date;
        meetingId: string | null;
        lastSyncedAt: Date | null;
        meetingSeriesId: string | null;
        graphEventId: string;
        iCalUId: string;
        graphSeriesMasterId: string | null;
        graphEventType: string;
        manageStatus: import("@prisma/client").$Enums.OutlookManageStatus;
        bootstrapStatus: import("@prisma/client").$Enums.OutlookBootstrapStatus | null;
        bootstrapError: string | null;
        bootstrapUpdatedAt: Date | null;
        ownerUserId: string | null;
        ownerEmail: string | null;
        primaryMailboxId: string;
        syncFrom: Date;
        cancellationSource: import("@prisma/client").$Enums.OutlookCancellationSource | null;
        syncMode: import("@prisma/client").$Enums.OutlookBindingSyncMode;
        localOverrideAt: Date | null;
        localOverrideByUserId: string | null;
        localOverrideByEmail: string | null;
        localOverrideReason: string | null;
        localOverrideFields: Prisma.JsonValue | null;
    })[]>;
    getCursorByMailboxId(mailboxId: string): Prisma.Prisma__OutlookSyncCursorClient<{
        id: string;
        createdAt: Date;
        updatedAt: Date;
        lastSyncedAt: Date | null;
        mailboxId: string;
        deltaToken: string;
        lastReconciledAt: Date | null;
    } | null, null, import("@prisma/client/runtime/library").DefaultArgs, Prisma.PrismaClientOptions>;
    upsertCursor(mailboxId: string, deltaToken: string, fields?: {
        lastSyncedAt?: Date;
        lastReconciledAt?: Date;
    }): Prisma.Prisma__OutlookSyncCursorClient<{
        id: string;
        createdAt: Date;
        updatedAt: Date;
        lastSyncedAt: Date | null;
        mailboxId: string;
        deltaToken: string;
        lastReconciledAt: Date | null;
    }, never, import("@prisma/client/runtime/library").DefaultArgs, Prisma.PrismaClientOptions>;
    findDefaultPrimaryMailbox(): Prisma.Prisma__OutlookSyncMailboxClient<{
        id: string;
        createdAt: Date;
        updatedAt: Date;
        mailboxEmail: string;
        mailboxType: import("@prisma/client").$Enums.OutlookMailboxType;
        isEnabled: boolean;
        isPrimaryDefault: boolean;
    } | null, null, import("@prisma/client/runtime/library").DefaultArgs, Prisma.PrismaClientOptions>;
}
