import type { Prisma } from '../../prisma-client';
import type { Calendar, SelectedCalendarEventTypeIds } from "@calcom/types/Calendar";
import type { ICalendarCacheRepository } from "./calendar-cache.repository.interface";
type FreeBusyArgs = {
    timeMin: string;
    timeMax: string;
    items: {
        id: string;
    }[];
};
export declare class CalendarCacheRepository implements ICalendarCacheRepository {
    calendar: Calendar | null;
    constructor(calendar?: Calendar | null);
    watchCalendar(args: {
        calendarId: string;
        eventTypeIds: SelectedCalendarEventTypeIds;
    }): Promise<void>;
    unwatchCalendar(args: {
        calendarId: string;
        eventTypeIds: SelectedCalendarEventTypeIds;
    }): Promise<void>;
    getCachedAvailability({ credentialId, userId, args, }: {
        credentialId: number;
        userId: number | null;
        args: FreeBusyArgs;
    }): Promise<{
        key: string;
        id: string | null;
        value: Prisma.JsonValue;
        userId: number | null;
        credentialId: number;
        expiresAt: Date;
    } | null>;
    upsertCachedAvailability({ credentialId, userId, args, value, }: {
        credentialId: number;
        userId: number | null;
        args: FreeBusyArgs;
        value: Prisma.JsonNullValueInput | Prisma.InputJsonValue;
    }): Promise<void>;
}
export {};
//# sourceMappingURL=calendar-cache.repository.d.ts.map