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 >; translateEventTypeData: z.infer< typeof import("./tasks/translateEventTypeData").ZTranslateEventDataPayloadSchema >; createCRMEvent: z.infer; sendWorkflowEmails: z.infer; scanWorkflowBody: z.infer; sendAnalyticsEvent: z.infer; }; export type TaskTypes = keyof TaskPayloads; export type TaskHandler = (payload: string) => Promise; export type TaskerCreate = ( type: TaskKey, payload: TaskPayloads[TaskKey], options?: { scheduledAt?: Date; maxAttempts?: number; referenceUid?: string } ) => Promise; export interface Tasker { /** Create a new task with the given type and payload. */ create: TaskerCreate; processQueue(): Promise; cleanup(): Promise; cancel(id: string): Promise; cancelWithReference(referenceUid: string, type: TaskTypes): Promise; }