import type BeeQueue from "bee-queue"; import type Bull from "bull"; import type * as BullMQ from "bullmq"; import type { Queue as GroupMQQueue } from "groupmq"; import { type QueueAdapter } from "./queue-adapters/base.adapter"; export type QueuedashTheme = "light" | "dark" | "system"; export type QueuedashDensity = "compact" | "comfortable"; export type QueuedashTimestampMode = "relative" | "absolute"; export type QueuedashDefaultJobStatus = "remember" | "completed" | "failed" | "delayed" | "active" | "prioritized" | "waiting" | "waiting-children" | "paused"; export type QueuedashBranding = { name?: string; logoUrl?: string; logoAlt?: string; faviconUrl?: string; }; export type QueuedashUiConfig = { instanceId?: string; branding?: QueuedashBranding; documentTitle?: boolean; defaults?: { theme?: QueuedashTheme; refreshIntervalMs?: number | false; jobsPerPage?: 20 | 30 | 50 | 100; defaultJobStatus?: QueuedashDefaultJobStatus; density?: QueuedashDensity; timestamps?: QueuedashTimestampMode; showOverviewMetrics?: boolean; }; }; export type QueuedashRedactionConfig = { includeDefaultKeys?: boolean; keys?: string[]; paths?: string[]; replacement?: string; }; export type QueuedashPrivacyConfig = { redact?: boolean | QueuedashRedactionConfig; expose?: { jobData?: boolean; jobOptions?: boolean; returnValues?: boolean; stacktraces?: boolean; logs?: boolean; schedulerData?: boolean; }; }; export type QueuedashAction = "queue.pause" | "queue.resume" | "queue.empty" | "queue.clean" | "queue.setConcurrency" | "queue.setRateLimit" | "queue.clearRateLimit" | "job.add" | "job.retry" | "job.promote" | "job.discard" | "job.rerun" | "job.remove" | "job.update" | "job.changeDelay" | "job.changePriority" | "job.removeDeduplication" | "scheduler.add" | "scheduler.update" | "scheduler.remove"; export type QueuedashAccessMode = "full" | "read-only" | "hidden"; export type QueuedashAccessRule = { queues: readonly string[]; mode?: QueuedashAccessMode; deny?: readonly QueuedashAction[]; }; export type QueuedashAccessConfig = { default?: QueuedashAccessMode; rules?: QueuedashAccessRule[]; }; export type QueuedashSearchConfig = { maxScanned?: number; }; export type QueuedashQueueDiscoveryConfig = { type: "bull" | "bullmq"; connectionUrl: string; prefix?: string; refreshIntervalMs?: number; maxQueues?: number; include?: (queueName: string) => boolean; displayName?: (queueName: string) => string; }; export type QueuedashQueue = { displayName: string; jobName?: (data: Record) => string; } & ({ queue: Bull.Queue; type?: "bull"; } | { queue: BullMQ.Queue; type?: "bullmq"; } | { queue: BeeQueue; type?: "bee"; } | { queue: GroupMQQueue; type?: "groupmq"; }); export type Context = { queues?: QueuedashQueue[]; discovery?: QueuedashQueueDiscoveryConfig; ui?: QueuedashUiConfig; privacy?: QueuedashPrivacyConfig; access?: QueuedashAccessConfig; search?: QueuedashSearchConfig; }; export type InternalContext = { queues: { adapter: QueueAdapter; jobName?: (data: Record) => string; }[]; privacy?: QueuedashPrivacyConfig; access?: QueuedashAccessConfig; search?: QueuedashSearchConfig; }; export declare const router: import("@trpc/server").TRPCRouterBuilder<{ ctx: Context; meta: object; errorShape: import("@trpc/server").TRPCDefaultErrorShape; transformer: false; }>; export declare const procedure: import("@trpc/server").TRPCProcedureBuilder; export declare function transformContext(ctx: Context): Promise; //# sourceMappingURL=trpc.d.ts.map