import { PrismaClient } from '@prisma/client'; export interface TrialStatus { isActive: boolean; daysRemaining: number; endDate: Date | null; isExpired: boolean; isWarningSent: boolean; canExtend: boolean; } export interface TrialExtensionRequest { organizationId: string; daysToExtend: number; reason: string; requestedBy: string; } export declare class TrialService { private static instance; private prisma; private constructor(); static getInstance(prisma: PrismaClient): TrialService; /** * Inicializa los trabajos cron para monitorear trials */ private initializeCronJobs; /** * Inicia el trial para una organización */ startTrial(organizationId: string, trialDays?: number): Promise; /** * Obtiene el estado actual del trial */ getTrialStatus(organizationId: string): Promise; /** * Extiende el trial de una organización */ extendTrial(request: TrialExtensionRequest): Promise; /** * Convierte un trial a suscripción pagada */ convertTrialToPaid(organizationId: string, planId: string): Promise; /** * Verifica y bloquea organizaciones con trial expirado */ blockExpiredTrials(): Promise; /** * Envía advertencias a organizaciones próximas a expirar */ sendTrialWarnings(): Promise; /** * Verifica trials expirados y los marca como expirados */ checkExpiredTrials(): Promise; /** * Registra una acción del trial */ private logTrialAction; /** * Obtiene el historial de acciones del trial */ getTrialHistory(organizationId: string): Promise; /** * Verifica si una organización puede acceder al sistema */ canAccess(organizationId: string): Promise; /** * Obtiene estadísticas de trials */ getTrialStats(): Promise; } //# sourceMappingURL=TrialService.d.ts.map