import type { CreateShiftInput, UpdateShiftInput, ListShiftsInput, AddSignupInput, PublicSignupInput } from './shifts.schemas'; export declare const shiftsService: { findAll(filters: ListShiftsInput): Promise<{ shifts: ({ _count: { signups: number; }; cut: { id: string; name: string; } | null; meeting: { id: string; title: string; isActive: boolean; slug: string; jitsiRoom: string; } | null; } & { status: import(".prisma/client").$Enums.ShiftStatus; date: Date; id: string; createdAt: Date; updatedAt: Date; location: string | null; title: string; description: string | null; createdBy: string | null; isPublic: boolean; cutId: string | null; startTime: string; endTime: string; gancioEventId: number | null; meetingId: string | null; seriesId: string | null; isException: boolean; maxVolunteers: number; currentVolunteers: number; })[]; pagination: { page: number; limit: number; total: number; totalPages: number; }; }>; findById(id: string): Promise<{ _count: { signups: number; }; cut: { id: string; name: string; } | null; meeting: { id: string; title: string; isActive: boolean; slug: string; jitsiRoom: string; } | null; signups: ({ user: { id: string; email: string; name: string | null; phone: string | null; } | null; } & { status: import(".prisma/client").$Enums.SignupStatus; id: string; userId: string | null; userEmail: string; shiftId: string; userName: string | null; shiftTitle: string | null; userPhone: string | null; signupDate: Date; signupSource: import(".prisma/client").$Enums.SignupSource; })[]; } & { status: import(".prisma/client").$Enums.ShiftStatus; date: Date; id: string; createdAt: Date; updatedAt: Date; location: string | null; title: string; description: string | null; createdBy: string | null; isPublic: boolean; cutId: string | null; startTime: string; endTime: string; gancioEventId: number | null; meetingId: string | null; seriesId: string | null; isException: boolean; maxVolunteers: number; currentVolunteers: number; }>; create(data: CreateShiftInput, userId: string): Promise<{ status: import(".prisma/client").$Enums.ShiftStatus; date: Date; id: string; createdAt: Date; updatedAt: Date; location: string | null; title: string; description: string | null; createdBy: string | null; isPublic: boolean; cutId: string | null; startTime: string; endTime: string; gancioEventId: number | null; meetingId: string | null; seriesId: string | null; isException: boolean; maxVolunteers: number; currentVolunteers: number; }>; update(id: string, data: UpdateShiftInput): Promise<{ status: import(".prisma/client").$Enums.ShiftStatus; date: Date; id: string; createdAt: Date; updatedAt: Date; location: string | null; title: string; description: string | null; createdBy: string | null; isPublic: boolean; cutId: string | null; startTime: string; endTime: string; gancioEventId: number | null; meetingId: string | null; seriesId: string | null; isException: boolean; maxVolunteers: number; currentVolunteers: number; }>; delete(id: string): Promise; createMeetingForShift(shiftId: string, userId: string): Promise<{ id: string; createdAt: Date; updatedAt: Date; title: string; isActive: boolean; description: string | null; slug: string; createdByUserId: string; jitsiRoom: string; startTime: Date | null; endTime: Date | null; }>; removeMeetingFromShift(shiftId: string): Promise; getStats(): Promise<{ total: number; open: number; full: number; cancelled: number; upcoming: number; totalSignups: number; }>; getSignups(shiftId: string): Promise<({ user: { id: string; email: string; name: string | null; phone: string | null; } | null; } & { status: import(".prisma/client").$Enums.SignupStatus; id: string; userId: string | null; userEmail: string; shiftId: string; userName: string | null; shiftTitle: string | null; userPhone: string | null; signupDate: Date; signupSource: import(".prisma/client").$Enums.SignupSource; })[]>; addSignup(shiftId: string, data: AddSignupInput): Promise<{ status: import(".prisma/client").$Enums.SignupStatus; id: string; userId: string | null; userEmail: string; shiftId: string; userName: string | null; shiftTitle: string | null; userPhone: string | null; signupDate: Date; signupSource: import(".prisma/client").$Enums.SignupSource; }>; removeSignup(signupId: string): Promise; publicSignup(shiftId: string, data: PublicSignupInput): Promise<{ signup: { status: import(".prisma/client").$Enums.SignupStatus; id: string; userId: string | null; userEmail: string; shiftId: string; userName: string | null; shiftTitle: string | null; userPhone: string | null; signupDate: Date; signupSource: import(".prisma/client").$Enums.SignupSource; }; isNewUser: boolean; }>; cancelPublicSignup(shiftId: string, userEmail: string): Promise; getUpcomingForVolunteer(userId: string): Promise<{ isSignedUp: boolean; status: import(".prisma/client").$Enums.ShiftStatus; date: Date; id: string; location: string | null; title: string; description: string | null; meeting: { id: string; isActive: boolean; slug: string; } | null; startTime: string; endTime: string; maxVolunteers: number; currentVolunteers: number; }[]>; volunteerSignup(shiftId: string, userId: string): Promise<{ status: import(".prisma/client").$Enums.SignupStatus; id: string; userId: string | null; userEmail: string; shiftId: string; userName: string | null; shiftTitle: string | null; userPhone: string | null; signupDate: Date; signupSource: import(".prisma/client").$Enums.SignupSource; }>; cancelVolunteerSignup(shiftId: string, userId: string): Promise; getMySignups(userId: string): Promise<({ shift: { status: import(".prisma/client").$Enums.ShiftStatus; date: Date; id: string; location: string | null; title: string; description: string | null; meeting: { id: string; isActive: boolean; slug: string; } | null; startTime: string; endTime: string; maxVolunteers: number; currentVolunteers: number; }; } & { status: import(".prisma/client").$Enums.SignupStatus; id: string; userId: string | null; userEmail: string; shiftId: string; userName: string | null; shiftTitle: string | null; userPhone: string | null; signupDate: Date; signupSource: import(".prisma/client").$Enums.SignupSource; })[]>; getPublicShifts(): Promise<{ status: import(".prisma/client").$Enums.ShiftStatus; date: Date; id: string; location: string | null; title: string; description: string | null; meeting: { id: string; isActive: boolean; slug: string; } | null; startTime: string; endTime: string; maxVolunteers: number; currentVolunteers: number; }[]>; emailShiftDetails(shiftId: string): Promise<{ sent: number; failed: number; }>; getCalendarData(startDate: string, endDate: string): Promise<{ dates: Record; }>; }; //# sourceMappingURL=shifts.service.d.ts.map