import { z } from '#compiled/zod/index.js'; export type QueueKind = 'workflow' | 'step'; /** * Pattern matching valid queue prefixes: * - `__wkf_workflow_` / `__wkf_step_` (default, no namespace) * - `__{namespace}_wkf_workflow_` / `__{namespace}_wkf_step_` (namespaced) * * Namespace must be lowercase alphanumeric starting with a letter. */ export declare const QueuePrefix: z.ZodString; export type QueuePrefix = z.infer; export declare const ValidQueueName: z.ZodString; export type ValidQueueName = z.infer; /** * Resolves the active queue namespace from an explicit argument or the * `WORKFLOW_QUEUE_NAMESPACE` env var. */ export declare function resolveQueueNamespace(namespace?: string): string | undefined; /** * Builds a queue topic prefix for the given kind and optional namespace. * * - `getQueueTopicPrefix('workflow')` → `'__wkf_workflow_'` * - `getQueueTopicPrefix('workflow', 'custom')` → `'__custom_wkf_workflow_'` */ export declare function getQueueTopicPrefix(kind: QueueKind, namespace?: string): QueuePrefix; export declare function getQueuePrefixKind(prefix: QueuePrefix): QueueKind; export declare function parseQueueName(name: ValidQueueName): { prefix: QueuePrefix; kind: QueueKind; id: string; }; export declare const MessageId: z.core.$ZodBranded; export type MessageId = z.infer; /** * OpenTelemetry trace context for distributed tracing */ export declare const TraceCarrierSchema: z.ZodRecord; export type TraceCarrier = z.infer; /** * Run creation data carried through the queue for resilient start. * Only present on the first queue delivery — re-enqueues omit this. * When the runtime processes the message, it passes this data to the * run_started event so the server can create the run if it doesn't exist yet. */ export declare const RunInputSchema: z.ZodObject<{ input: z.ZodUnknown; deploymentId: z.ZodString; workflowName: z.ZodString; specVersion: z.ZodNumber; executionContext: z.ZodOptional>; attributes: z.ZodOptional>; allowReservedAttributes: z.ZodOptional>; }, z.core.$strip>; export type RunInput = z.infer; export declare const WorkflowInvokePayloadSchema: z.ZodObject<{ runId: z.ZodString; traceCarrier: z.ZodOptional>; requestedAt: z.ZodOptional>; replayDivergence: z.ZodOptional>; serverErrorRetryCount: z.ZodOptional; stepId: z.ZodOptional; stepName: z.ZodOptional; runInput: z.ZodOptional>; attributes: z.ZodOptional>; allowReservedAttributes: z.ZodOptional>; }, z.core.$strip>>; }, z.core.$strip>; export declare const StepInvokePayloadSchema: z.ZodObject<{ workflowName: z.ZodString; workflowRunId: z.ZodString; workflowStartedAt: z.ZodNumber; stepId: z.ZodString; traceCarrier: z.ZodOptional>; requestedAt: z.ZodOptional>; }, z.core.$strip>; export type WorkflowInvokePayload = z.infer; export type StepInvokePayload = z.infer; export type HealthCheckPayload = z.infer; /** * Health check payload - used to verify that the queue pipeline * can deliver messages to workflow/step endpoints. */ export declare const HealthCheckPayloadSchema: z.ZodObject<{ __healthCheck: z.ZodLiteral; correlationId: z.ZodString; }, z.core.$strip>; export declare const QueuePayloadSchema: z.ZodUnion>; requestedAt: z.ZodOptional>; replayDivergence: z.ZodOptional>; serverErrorRetryCount: z.ZodOptional; stepId: z.ZodOptional; stepName: z.ZodOptional; runInput: z.ZodOptional>; attributes: z.ZodOptional>; allowReservedAttributes: z.ZodOptional>; }, z.core.$strip>>; }, z.core.$strip>, z.ZodObject<{ workflowName: z.ZodString; workflowRunId: z.ZodString; workflowStartedAt: z.ZodNumber; stepId: z.ZodString; traceCarrier: z.ZodOptional>; requestedAt: z.ZodOptional>; }, z.core.$strip>, z.ZodObject<{ __healthCheck: z.ZodLiteral; correlationId: z.ZodString; }, z.core.$strip>]>; export type QueuePayload = z.infer; export interface QueueOptions { deploymentId?: string; idempotencyKey?: string; headers?: Record; /** Delay message delivery by this many seconds */ delaySeconds?: number; /** Spec version of the target run. Used to select the queue transport format. */ specVersion?: number; } export interface Queue { getDeploymentId(): Promise; /** * Enqueues a message to the specified queue. * * @param queueName - The name of the queue to which the message will be sent. * @param message - The content of the message to be sent to the queue. * @param opts - Optional parameters for the queue operation. */ queue(queueName: ValidQueueName, message: QueuePayload, opts?: QueueOptions): Promise<{ messageId: MessageId | null; }>; /** * Creates an HTTP queue handler for processing messages from a specific queue. */ createQueueHandler(queueNamePrefix: QueuePrefix, handler: (message: unknown, meta: { attempt: number; queueName: ValidQueueName; messageId: MessageId; requestId?: string; }) => Promise): (req: Request) => Promise; } //# sourceMappingURL=queue.d.ts.map