import type { ScheduledJob, ScheduledJobResult } from "../scheduler"; /** * Minimal subset of the Prisma client surface this job needs. * Keeps the test fakes tiny and avoids pulling Prisma's full type into hot paths. */ interface InvitationCleanupClient { organizationInvitation: { updateMany(args: { where: { status: string; expiresAt: { lt: Date; }; }; data: { status: string; }; }): Promise<{ count: number; }>; }; } export interface RunInvitationCleanupOptions { /** Prisma client (or a structural fake in tests). */ client: InvitationCleanupClient; /** Override "now" for deterministic testing. */ now?: () => Date; } /** * Pure handler — flips rows whose `expiresAt < now()` and `status = 'pending'` * to `status = 'expired'`. Returns the count of affected rows. */ export declare function runInvitationCleanup(options: RunInvitationCleanupOptions): Promise; /** * Registry-shaped definition. The handler resolves the real Prisma client * lazily via dynamic import so tests don't need a live database. */ export declare const invitationCleanup: ScheduledJob; export {}; //# sourceMappingURL=invitation-cleanup.d.ts.map