/** * `weft.task.queues.list` operation + REST binding. * * Reports per-queue health for the operator dashboard: backlog, * oldest-queued age, waiting long-poll pollers, in-flight task count, * connected worker count, and scheduling policy. * * The queue set is the union of three sources, merged inside the * operation: * 1. `taskQueue.getQueueSummaries()` — queues with pending tasks or * waiters (TaskQueue-owned state). * 2. `registry.getWorkerSummaries(now).map(w => w.queue)` — queues with * connected workers, so an idle queue with no backlog still appears * in the response. * The same `now` snapshot is shared with the worker registry to keep * per-request data internally consistent. * * Access is `system:read`. The `TaskQueue` is server-wide infrastructure. * * @module server/operations/list-task-queues */ import { z } from 'zod'; import type { WorkerRegistry, WorkerSummary } from '../../worker/registry.ts'; import type { UnknownRestBinding } from '../rest-bindings.ts'; import type { SchedulingPolicy, TaskQueueSummary } from '../task-queue-types.ts'; import type { TaskQueue } from '../task-queue.ts'; declare const listTaskQueuesInput: z.ZodObject<{}, z.core.$strip>; export type TaskQueueHealth = { queue: string; backlog: number; oldestEnqueuedAt: number | null; oldestQueuedAgeMs: number | null; waitingPollers: number; schedulingPolicy: SchedulingPolicy; inFlight: number; connectedWorkers: number; }; export type ListTaskQueuesInput = z.infer; export type ListTaskQueuesOutput = { items: TaskQueueHealth[]; }; type ListTaskQueuesOptions = { workerRegistry?: WorkerRegistry; taskQueue?: TaskQueue; clock?: () => number; }; /** * Build the `weft.task.queues.list` operation, optionally bound to a live * `WorkerRegistry`, `TaskQueue`, and clock. * * When either runtime dependency is omitted, the operation is registered * with metadata only — discovery output still describes the endpoint — * but `invoke` throws if called. */ export declare function createListTaskQueuesOperation(options?: ListTaskQueuesOptions): import("../operation-catalog.ts").OperationDefinition, ListTaskQueuesOutput, unknown>; type MergeArgs = { now: number; workerSummaries: WorkerSummary[]; queueEntries: TaskQueueSummary[]; schedulingPolicy: SchedulingPolicy; }; /** * Join queue-owned state with worker-owned state into one stable, sorted * list. Exported for unit testing the merge logic in isolation. */ export declare function mergeQueueHealth(args: MergeArgs): TaskQueueHealth[]; /** Default discovery-only operation; live servers use `createListTaskQueuesOperation(...)`. */ export declare const listTaskQueuesOperation: import("../operation-catalog.ts").OperationDefinition, ListTaskQueuesOutput, unknown>; /** Build the REST binding for `weft.task.queues.list`. */ export declare function createListTaskQueuesRestBinding(): UnknownRestBinding; export {};