import { UserRole } from '@prisma/client'; import type { CreateCampaignInput, UpdateCampaignInput, ListCampaignsInput, CreateUserCampaignInput, ModerateCampaignInput, ListModerationQueueInput } from './campaigns.schemas'; interface AuthUser { id: string; email: string; role: UserRole; } export declare const campaignsService: { findAll(filters: ListCampaignsInput, user?: AuthUser): Promise<{ campaigns: { status: import(".prisma/client").$Enums.CampaignStatus; id: string; createdAt: Date; updatedAt: Date; _count: { responses: number; emails: number; }; title: string; description: string | null; slug: string; coverPhoto: string | null; coverVideoId: number | null; moderationNotes: string | null; createdByUserId: string | null; emailSubject: string; emailBody: string; callToAction: string | null; allowSmtpEmail: boolean; allowMailtoLink: boolean; collectUserInfo: boolean; showEmailCount: boolean; showCallCount: boolean; allowEmailEditing: boolean; allowCustomRecipients: boolean; showResponseWall: boolean; highlightCampaign: boolean; targetGovernmentLevels: import(".prisma/client").$Enums.GovernmentLevel[]; createdByUserEmail: string | null; createdByUserName: string | null; isUserGenerated: boolean; moderationStatus: import(".prisma/client").$Enums.CampaignModerationStatus | null; reviewedByUserId: string | null; reviewedAt: Date | null; rejectionReason: string | null; }[]; pagination: { page: number; limit: number; total: number; totalPages: number; }; }>; findById(id: string): Promise<{ status: import(".prisma/client").$Enums.CampaignStatus; id: string; createdAt: Date; updatedAt: Date; _count: { responses: number; emails: number; }; title: string; description: string | null; slug: string; coverPhoto: string | null; coverVideoId: number | null; moderationNotes: string | null; createdByUserId: string | null; emailSubject: string; emailBody: string; callToAction: string | null; allowSmtpEmail: boolean; allowMailtoLink: boolean; collectUserInfo: boolean; showEmailCount: boolean; showCallCount: boolean; allowEmailEditing: boolean; allowCustomRecipients: boolean; showResponseWall: boolean; highlightCampaign: boolean; targetGovernmentLevels: import(".prisma/client").$Enums.GovernmentLevel[]; createdByUserEmail: string | null; createdByUserName: string | null; isUserGenerated: boolean; moderationStatus: import(".prisma/client").$Enums.CampaignModerationStatus | null; reviewedByUserId: string | null; reviewedAt: Date | null; rejectionReason: string | null; }>; findBySlug(slug: string): Promise<{ status: import(".prisma/client").$Enums.CampaignStatus; id: string; createdAt: Date; updatedAt: Date; _count: { responses: number; emails: number; }; title: string; description: string | null; slug: string; coverPhoto: string | null; coverVideoId: number | null; moderationNotes: string | null; createdByUserId: string | null; emailSubject: string; emailBody: string; callToAction: string | null; allowSmtpEmail: boolean; allowMailtoLink: boolean; collectUserInfo: boolean; showEmailCount: boolean; showCallCount: boolean; allowEmailEditing: boolean; allowCustomRecipients: boolean; showResponseWall: boolean; highlightCampaign: boolean; targetGovernmentLevels: import(".prisma/client").$Enums.GovernmentLevel[]; createdByUserEmail: string | null; createdByUserName: string | null; isUserGenerated: boolean; moderationStatus: import(".prisma/client").$Enums.CampaignModerationStatus | null; reviewedByUserId: string | null; reviewedAt: Date | null; rejectionReason: string | null; }>; create(data: CreateCampaignInput, user: AuthUser): Promise<{ status: import(".prisma/client").$Enums.CampaignStatus; id: string; createdAt: Date; updatedAt: Date; _count: { responses: number; emails: number; }; title: string; description: string | null; slug: string; coverPhoto: string | null; coverVideoId: number | null; moderationNotes: string | null; createdByUserId: string | null; emailSubject: string; emailBody: string; callToAction: string | null; allowSmtpEmail: boolean; allowMailtoLink: boolean; collectUserInfo: boolean; showEmailCount: boolean; showCallCount: boolean; allowEmailEditing: boolean; allowCustomRecipients: boolean; showResponseWall: boolean; highlightCampaign: boolean; targetGovernmentLevels: import(".prisma/client").$Enums.GovernmentLevel[]; createdByUserEmail: string | null; createdByUserName: string | null; isUserGenerated: boolean; moderationStatus: import(".prisma/client").$Enums.CampaignModerationStatus | null; reviewedByUserId: string | null; reviewedAt: Date | null; rejectionReason: string | null; }>; update(id: string, data: UpdateCampaignInput): Promise<{ status: import(".prisma/client").$Enums.CampaignStatus; id: string; createdAt: Date; updatedAt: Date; _count: { responses: number; emails: number; }; title: string; description: string | null; slug: string; coverPhoto: string | null; coverVideoId: number | null; moderationNotes: string | null; createdByUserId: string | null; emailSubject: string; emailBody: string; callToAction: string | null; allowSmtpEmail: boolean; allowMailtoLink: boolean; collectUserInfo: boolean; showEmailCount: boolean; showCallCount: boolean; allowEmailEditing: boolean; allowCustomRecipients: boolean; showResponseWall: boolean; highlightCampaign: boolean; targetGovernmentLevels: import(".prisma/client").$Enums.GovernmentLevel[]; createdByUserEmail: string | null; createdByUserName: string | null; isUserGenerated: boolean; moderationStatus: import(".prisma/client").$Enums.CampaignModerationStatus | null; reviewedByUserId: string | null; reviewedAt: Date | null; rejectionReason: string | null; }>; findActiveCampaigns(): Promise<{ status: import(".prisma/client").$Enums.CampaignStatus; id: string; createdAt: Date; updatedAt: Date; _count: { responses: number; emails: number; }; title: string; description: string | null; slug: string; coverPhoto: string | null; coverVideoId: number | null; emailSubject: string; emailBody: string; callToAction: string | null; allowSmtpEmail: boolean; allowMailtoLink: boolean; collectUserInfo: boolean; showEmailCount: boolean; showCallCount: boolean; allowEmailEditing: boolean; allowCustomRecipients: boolean; showResponseWall: boolean; highlightCampaign: boolean; targetGovernmentLevels: import(".prisma/client").$Enums.GovernmentLevel[]; createdByUserName: string | null; isUserGenerated: boolean; moderationStatus: import(".prisma/client").$Enums.CampaignModerationStatus | null; }[]>; findBySlugPublic(slug: string): Promise<{ status: import(".prisma/client").$Enums.CampaignStatus; id: string; createdAt: Date; updatedAt: Date; _count: { responses: number; emails: number; }; title: string; description: string | null; slug: string; coverPhoto: string | null; coverVideoId: number | null; emailSubject: string; emailBody: string; callToAction: string | null; allowSmtpEmail: boolean; allowMailtoLink: boolean; collectUserInfo: boolean; showEmailCount: boolean; showCallCount: boolean; allowEmailEditing: boolean; allowCustomRecipients: boolean; showResponseWall: boolean; highlightCampaign: boolean; targetGovernmentLevels: import(".prisma/client").$Enums.GovernmentLevel[]; createdByUserName: string | null; isUserGenerated: boolean; moderationStatus: import(".prisma/client").$Enums.CampaignModerationStatus | null; }>; delete(id: string): Promise; createUserCampaign(data: CreateUserCampaignInput, user: AuthUser): Promise<{ status: import(".prisma/client").$Enums.CampaignStatus; id: string; createdAt: Date; updatedAt: Date; _count: { responses: number; emails: number; }; title: string; description: string | null; slug: string; coverPhoto: string | null; coverVideoId: number | null; moderationNotes: string | null; createdByUserId: string | null; emailSubject: string; emailBody: string; callToAction: string | null; allowSmtpEmail: boolean; allowMailtoLink: boolean; collectUserInfo: boolean; showEmailCount: boolean; showCallCount: boolean; allowEmailEditing: boolean; allowCustomRecipients: boolean; showResponseWall: boolean; highlightCampaign: boolean; targetGovernmentLevels: import(".prisma/client").$Enums.GovernmentLevel[]; createdByUserEmail: string | null; createdByUserName: string | null; isUserGenerated: boolean; moderationStatus: import(".prisma/client").$Enums.CampaignModerationStatus | null; reviewedByUserId: string | null; reviewedAt: Date | null; rejectionReason: string | null; }>; findUserCampaigns(userId: string): Promise<{ status: import(".prisma/client").$Enums.CampaignStatus; id: string; createdAt: Date; updatedAt: Date; _count: { responses: number; emails: number; }; title: string; description: string | null; slug: string; coverPhoto: string | null; coverVideoId: number | null; moderationNotes: string | null; createdByUserId: string | null; emailSubject: string; emailBody: string; callToAction: string | null; allowSmtpEmail: boolean; allowMailtoLink: boolean; collectUserInfo: boolean; showEmailCount: boolean; showCallCount: boolean; allowEmailEditing: boolean; allowCustomRecipients: boolean; showResponseWall: boolean; highlightCampaign: boolean; targetGovernmentLevels: import(".prisma/client").$Enums.GovernmentLevel[]; createdByUserEmail: string | null; createdByUserName: string | null; isUserGenerated: boolean; moderationStatus: import(".prisma/client").$Enums.CampaignModerationStatus | null; reviewedByUserId: string | null; reviewedAt: Date | null; rejectionReason: string | null; }[]>; updateUserCampaign(id: string, data: Partial, user: AuthUser): Promise<{ status: import(".prisma/client").$Enums.CampaignStatus; id: string; createdAt: Date; updatedAt: Date; _count: { responses: number; emails: number; }; title: string; description: string | null; slug: string; coverPhoto: string | null; coverVideoId: number | null; moderationNotes: string | null; createdByUserId: string | null; emailSubject: string; emailBody: string; callToAction: string | null; allowSmtpEmail: boolean; allowMailtoLink: boolean; collectUserInfo: boolean; showEmailCount: boolean; showCallCount: boolean; allowEmailEditing: boolean; allowCustomRecipients: boolean; showResponseWall: boolean; highlightCampaign: boolean; targetGovernmentLevels: import(".prisma/client").$Enums.GovernmentLevel[]; createdByUserEmail: string | null; createdByUserName: string | null; isUserGenerated: boolean; moderationStatus: import(".prisma/client").$Enums.CampaignModerationStatus | null; reviewedByUserId: string | null; reviewedAt: Date | null; rejectionReason: string | null; }>; findModerationQueue(filters: ListModerationQueueInput): Promise<{ campaigns: { status: import(".prisma/client").$Enums.CampaignStatus; id: string; createdAt: Date; updatedAt: Date; _count: { responses: number; emails: number; }; title: string; description: string | null; slug: string; coverPhoto: string | null; coverVideoId: number | null; moderationNotes: string | null; createdByUserId: string | null; emailSubject: string; emailBody: string; callToAction: string | null; allowSmtpEmail: boolean; allowMailtoLink: boolean; collectUserInfo: boolean; showEmailCount: boolean; showCallCount: boolean; allowEmailEditing: boolean; allowCustomRecipients: boolean; showResponseWall: boolean; highlightCampaign: boolean; targetGovernmentLevels: import(".prisma/client").$Enums.GovernmentLevel[]; createdByUserEmail: string | null; createdByUserName: string | null; isUserGenerated: boolean; moderationStatus: import(".prisma/client").$Enums.CampaignModerationStatus | null; reviewedByUserId: string | null; reviewedAt: Date | null; rejectionReason: string | null; }[]; pagination: { page: number; limit: number; total: number; totalPages: number; }; }>; getModerationStats(): Promise<{ total: number; pending: number; approved: number; rejected: number; changesRequested: number; }>; moderateCampaign(id: string, input: ModerateCampaignInput, reviewer: AuthUser): Promise<{ status: import(".prisma/client").$Enums.CampaignStatus; id: string; createdAt: Date; updatedAt: Date; _count: { responses: number; emails: number; }; title: string; description: string | null; slug: string; coverPhoto: string | null; coverVideoId: number | null; moderationNotes: string | null; createdByUserId: string | null; emailSubject: string; emailBody: string; callToAction: string | null; allowSmtpEmail: boolean; allowMailtoLink: boolean; collectUserInfo: boolean; showEmailCount: boolean; showCallCount: boolean; allowEmailEditing: boolean; allowCustomRecipients: boolean; showResponseWall: boolean; highlightCampaign: boolean; targetGovernmentLevels: import(".prisma/client").$Enums.GovernmentLevel[]; createdByUserEmail: string | null; createdByUserName: string | null; isUserGenerated: boolean; moderationStatus: import(".prisma/client").$Enums.CampaignModerationStatus | null; reviewedByUserId: string | null; reviewedAt: Date | null; rejectionReason: string | null; }>; }; export {}; //# sourceMappingURL=campaigns.service.d.ts.map