import { C as Scheduler, E as retryDelayMs, S as ScheduleTickerOptions, T as WorkerOptions, _ as JobParent, a as TriggerScheduleSpec, b as JobTrigger, d as CreateJobQueueOptions, f as CreateSchedulerOptions, h as JobHandler, i as SchedulerScope, l as defineSchedulerPlugin, m as EnqueueInput, n as SchedulerPlugin, o as TriggerScheduleSyncOptions, p as DEFAULT_RETRY_DELAY_MS, r as SchedulerPluginContext, s as TriggerScheduler, v as JobPayload, w as StopFn, x as ScheduleSyncOptions, y as JobQueue } from "./contract-GpxHe4g6.mjs"; import { PgBoss } from "pg-boss"; //#region src/create-scheduler.d.ts declare function createScheduler(options?: CreateSchedulerOptions): Promise; declare function createJobQueue(options?: CreateJobQueueOptions): Promise; declare function wrapJobQueueAsScheduler(jobQueue: JobQueue, scope?: "project" | "organization"): Promise; //#endregion //#region src/sync-trigger-schedules.d.ts declare function syncTriggerSchedules(options: ScheduleSyncOptions): Promise; //#endregion //#region src/resolve-schedule.d.ts type ScheduleOverrideOptions = { global?: string; byTrigger?: Record; }; declare function resolveTriggerSchedule(triggerSlug: string, schedule: string, overrides?: ScheduleOverrideOptions): string; //#endregion //#region src/memory.d.ts type MemoryJobQueueOptions = { sync?: boolean; }; declare function createMemoryJobQueue(options?: MemoryJobQueueOptions): JobQueue; //#endregion //#region src/shared-scheduler.d.ts declare function configureSharedScheduler(plugin: SchedulerPlugin): void; declare function createSharedScheduler(): Promise; declare function resetSharedSchedulerForTests(): void; //#endregion //#region src/plugin.d.ts /** Postgres pg-boss backend. Platform scope shares one queue; org scope gets one queue per org. */ declare function pgBossSchedulerPlugin(): SchedulerPlugin; /** DB-table queue (Drizzle `jobs`), for SQLite / self-host. */ declare function pollingSchedulerPlugin(): SchedulerPlugin; /** Auto-selects pg-boss (postgres) or polling (sqlite) by dialect. */ declare function defaultSchedulerPlugin(): SchedulerPlugin; //#endregion //#region src/database-trigger-scheduler.d.ts type DatabaseTriggerSchedulerOptions = { jobQueue: JobQueue; scope?: "project" | "organization"; pollIntervalMs?: number; batchSize?: number; }; /** Postgres poll loop — default trigger scheduler for pg-boss, polling, and memory paths. */ declare function createDatabaseTriggerScheduler(options: DatabaseTriggerSchedulerOptions): TriggerScheduler; //#endregion //#region src/pg-boss-client.d.ts declare function startPgBoss(url?: string): Promise; declare function getPgBoss(): PgBoss; declare function stopPgBoss(): Promise; //#endregion //#region src/shared-pgboss-queue.d.ts declare function createSharedPgBossScheduler(): Promise; declare function getSharedPgBossJobQueue(): Promise; declare function resetSharedPgBossJobQueueForTests(): void; //#endregion //#region src/pg-boss-queue.d.ts /** Shared queue name for the platform control-plane scope. */ declare const DEFAULT_QUEUE_NAME = "keystroke"; /** * Derive a per-project pg-boss queue name. pg-boss queue names must be <= 50 * chars, contain only [A-Za-z0-9_], and not start with a digit. Project ids are * usually UUIDs (hyphens, may start with a digit), so we sanitize, and fall back * to a hash when the sanitized name would exceed the length limit. */ declare function pgBossProjectQueueName(projectId: string): string; type BuildPgBossJobQueueOptions = { connectionString: string; stopBossOnWorkerStop?: boolean; queueName?: string; cancelScope?: "platform" | "project" | "organization"; projectId?: string; organizationId?: string; }; /** * A {@link JobQueue} that also exposes its underlying pg-boss instance and queue * name so the trigger scheduler can register native cron schedules * (`boss.schedule`) against the same queue the worker drains. */ type PgBossJobQueue = JobQueue & { boss: PgBoss; queueName: string; }; declare function buildPgBossJobQueue(boss: PgBoss, options: BuildPgBossJobQueueOptions): PgBossJobQueue; declare function createSharedPgBossJobQueue(boss: PgBoss, options: { connectionString: string; queueName?: string; }): Promise; //#endregion //#region src/pg-boss-trigger-scheduler.d.ts /** * pg-boss schedule key for one trigger. Mirrors {@link bullmqTriggerSchedulerId} * so the firing backend is interchangeable: `trigger--`. pg-boss * keys allow hyphens, so colons (legal in ids) are swapped for `-`. */ declare function pgBossTriggerScheduleKey(spec: Pick): string; /** Key prefix scoping reconcile cleanup to the active project (org queues are shared). */ declare function pgBossTriggerScheduleKeyPrefix(projectId?: string): string; /** * Trigger scheduler backed by pg-boss native cron scheduling. Mirrors * {@link createBullmqTriggerScheduler}: `boss.schedule` registers a recurring job * onto the project/org queue (no per-second DB poll), and reconcile keeps the * `pgboss.schedule` table in sync with the `triggers` table (source of truth). * * Granularity: pg-boss cron is minute-level (it checks schedules every ~30s and * dedupes per minute), so sub-minute schedules effectively fire at most once per * minute — unlike the DB ticker's 1s loop. */ declare function createPgBossTriggerScheduler(_ctx: SchedulerPluginContext, queue: PgBossJobQueue): TriggerScheduler; //#endregion export { type CreateJobQueueOptions, type CreateSchedulerOptions, DEFAULT_QUEUE_NAME, DEFAULT_RETRY_DELAY_MS, type EnqueueInput, type JobHandler, type JobParent, type JobPayload, type JobQueue, type JobTrigger, type MemoryJobQueueOptions, type PgBossJobQueue, type ScheduleSyncOptions, type ScheduleTickerOptions, type Scheduler, type SchedulerPlugin, type SchedulerPluginContext, type SchedulerScope, type StopFn, type TriggerScheduleSpec, type TriggerScheduleSyncOptions, type TriggerScheduler, type WorkerOptions, buildPgBossJobQueue, configureSharedScheduler, createDatabaseTriggerScheduler, createJobQueue, createMemoryJobQueue, createPgBossTriggerScheduler, createScheduler, createSharedPgBossJobQueue, createSharedPgBossScheduler, createSharedScheduler, defaultSchedulerPlugin, defineSchedulerPlugin, getPgBoss, getSharedPgBossJobQueue, pgBossProjectQueueName, pgBossSchedulerPlugin, pgBossTriggerScheduleKey, pgBossTriggerScheduleKeyPrefix, pollingSchedulerPlugin, resetSharedPgBossJobQueueForTests, resetSharedSchedulerForTests, resolveTriggerSchedule, retryDelayMs, startPgBoss, stopPgBoss, syncTriggerSchedules, wrapJobQueueAsScheduler }; //# sourceMappingURL=index.d.mts.map