import { z } from "zod"; export type QueuebaseBackoff = "fixed" | "exponential" | "linear"; export interface QueuebaseScheduleConfig { cron: string; timezone?: string; overlap?: "allow" | "skip"; } export type QueuebaseSchedule = string | QueuebaseScheduleConfig; export interface QueuebaseJobContext { input: TInput; jobId: string; attempt: number; maxAttempts: number; fail: (reason: string) => never; } export interface QueuebaseJobDefinition { input: TSchema; handler: (context: QueuebaseJobContext>) => Promise | TResult; defaults?: { retries?: number; backoff?: QueuebaseBackoff; }; schedule?: QueuebaseSchedule; } export type QueuebaseJobRouter = Record; export interface QueuebaseWebhookOptions { webhookSecret?: string; signatureHeader?: string; } export interface QueuebaseScheduleMetadata { name: string; schedule: QueuebaseSchedule; } export declare function defineQueueJob(definition: QueuebaseJobDefinition): QueuebaseJobDefinition; export declare function createJobRouter(router: TRouter): TRouter; export declare function createQueuebaseWebhookHandler(router: TRouter, options?: QueuebaseWebhookOptions): (request: Request) => Promise; export declare function listQueuebaseSchedules(router: TRouter): QueuebaseScheduleMetadata[]; export declare const queuebaseJobs: { invitationCleanup: QueuebaseJobDefinition, import("./scheduled").ScheduledJobResult>; sessionCleanup: QueuebaseJobDefinition, import("./scheduled").ScheduledJobResult>; }; export type QueuebaseJobs = typeof queuebaseJobs; export declare const queuebaseWebhookHandler: (request: Request) => Promise; export declare function verifyQueuebaseSignature(body: string, signature: string | null | undefined, secret: string): boolean; //# sourceMappingURL=queuebase-webhook.d.ts.map