import { PrismaService } from "../../../core/database/prisma/prisma.service";
import { Prisma } from '@prisma/client';
export declare class AttendanceEventRepository {
    private readonly prisma;
    constructor(prisma: PrismaService);
    create(data: Prisma.SiteAttendanceEventCreateInput): Prisma.Prisma__SiteAttendanceEventClient<{
        id: string;
        createdAt: Date;
        userId: string;
        ipAddress: string | null;
        userAgent: string | null;
        deviceId: string | null;
        timestamp: Date;
        latitude: number | null;
        longitude: number | null;
        checkpointId: string;
        eventType: import("@prisma/client").$Enums.SiteEventType;
        localDate: string;
        authMethod: import("@prisma/client").$Enums.SiteAuthMethod;
        accuracy: number | null;
        geoStatus: import("@prisma/client").$Enums.SiteGeoStatus;
        distanceToCheckpoint: number | null;
    }, never, import("@prisma/client/runtime/library").DefaultArgs, Prisma.PrismaClientOptions>;
    findByCheckpointUserAndDate(checkpointId: string, userId: string, localDate: string): Prisma.PrismaPromise<{
        id: string;
        createdAt: Date;
        userId: string;
        ipAddress: string | null;
        userAgent: string | null;
        deviceId: string | null;
        timestamp: Date;
        latitude: number | null;
        longitude: number | null;
        checkpointId: string;
        eventType: import("@prisma/client").$Enums.SiteEventType;
        localDate: string;
        authMethod: import("@prisma/client").$Enums.SiteAuthMethod;
        accuracy: number | null;
        geoStatus: import("@prisma/client").$Enums.SiteGeoStatus;
        distanceToCheckpoint: number | null;
    }[]>;
    findByCheckpointAndDate(checkpointId: string, localDate: string, page?: number, pageSize?: number): Prisma.PrismaPromise<({
        user: {
            displayName: string;
            id: string;
            email: string;
        };
    } & {
        id: string;
        createdAt: Date;
        userId: string;
        ipAddress: string | null;
        userAgent: string | null;
        deviceId: string | null;
        timestamp: Date;
        latitude: number | null;
        longitude: number | null;
        checkpointId: string;
        eventType: import("@prisma/client").$Enums.SiteEventType;
        localDate: string;
        authMethod: import("@prisma/client").$Enums.SiteAuthMethod;
        accuracy: number | null;
        geoStatus: import("@prisma/client").$Enums.SiteGeoStatus;
        distanceToCheckpoint: number | null;
    })[]>;
    findAllByCheckpointAndDate(checkpointId: string, localDate: string): Prisma.PrismaPromise<{
        userId: string;
        timestamp: Date;
        eventType: import("@prisma/client").$Enums.SiteEventType;
    }[]>;
    countByCheckpointAndDate(checkpointId: string, localDate: string): Prisma.PrismaPromise<number>;
    findLatestEvent(checkpointId: string, userId: string, eventType: string, sinceTimestamp: Date): Prisma.Prisma__SiteAttendanceEventClient<{
        id: string;
        createdAt: Date;
        userId: string;
        ipAddress: string | null;
        userAgent: string | null;
        deviceId: string | null;
        timestamp: Date;
        latitude: number | null;
        longitude: number | null;
        checkpointId: string;
        eventType: import("@prisma/client").$Enums.SiteEventType;
        localDate: string;
        authMethod: import("@prisma/client").$Enums.SiteAuthMethod;
        accuracy: number | null;
        geoStatus: import("@prisma/client").$Enums.SiteGeoStatus;
        distanceToCheckpoint: number | null;
    } | null, null, import("@prisma/client/runtime/library").DefaultArgs, Prisma.PrismaClientOptions>;
}
