import type { z } from "zod"; export type TaskerTypes = "internal" | "redis"; type TaskPayloads = { sendEmail: string; sendWebhook: string; sendSms: string; triggerHostNoShowWebhook: z.infer< typeof import("./tasks/triggerNoShow/schema").ZSendNoShowWebhookPayloadSchema >; triggerGuestNoShowWebhook: z.infer< typeof import("./tasks/triggerNoShow/schema").ZSendNoShowWebhookPayloadSchema >; triggerFormSubmittedNoEventWebhook: z.infer< typeof import("./tasks/triggerFormSubmittedNoEvent/triggerFormSubmittedNoEventWebhook").ZTriggerFormSubmittedNoEventWebhookPayloadSchema >; }; export type TaskTypes = keyof TaskPayloads; export type TaskHandler = (payload: string) => Promise; export type TaskerCreate = ( type: TaskKey, payload: TaskPayloads[TaskKey], options?: { scheduledAt?: Date; maxAttempts?: number } ) => Promise; export interface Tasker { /** Create a new task with the given type and payload. */ create: TaskerCreate; processQueue(): Promise; cleanup(): Promise; }