declare const JOB_ORCHESTRATOR: unique symbol;
declare const JOB_RUN_SERVICE: unique symbol;
declare const JOB_STEP_SERVICE: unique symbol;
/**
 * Multi-tenancy opt-in flag (JOB-8). Bound to the boolean passed in via
 * `JobsDomainModule.forRoot({ multiTenant })`, defaulting to `false`.
 *
 * When `true`, the four service-layer backends (Drizzle + Memory orchestrator
 * and run-service) enforce `tenantId` on every mutating / targeted-read call:
 * `start`, `cancel`, `listForScope`, `cancelForScope`, `rescheduleForScope`.
 * Missing (`undefined`) `tenantId` throws `MissingTenantIdError`; explicit
 * `null` opts into cross-tenant background work and passes through.
 *
 * The JobWorker claim loop is **cross-tenant by design** — the worker has no
 * tenant context; `tenantId` is populated at write time and enforced on
 * targeted reads. See docs/specs/JOB-8.md.
 */
declare const JOBS_MULTI_TENANT: unique symbol;
/**
 * LISTEN/NOTIFY wakeup opt-in flag (LISTEN-NOTIFY-1). Bound to
 * `JobsDomainModule.forRoot({ extensions: { drizzle: { listenNotify } } })`,
 * defaulting to `false`.
 *
 * When `true`, the Drizzle orchestrator emits an in-transaction
 * `pg_notify(codegen_jobs_wake, <pool>)` on every `start()` INSERT so a worker
 * with `listen_notify` enabled wakes the moment the enqueue commits. Off by
 * default; polling is unchanged. The flag is read by `DrizzleJobOrchestrator`
 * and by the bridge outbox drain hook (its wrapper `job_run` inserts notify too).
 */
declare const JOBS_LISTEN_NOTIFY: unique symbol;

export { JOBS_LISTEN_NOTIFY, JOBS_MULTI_TENANT, JOB_ORCHESTRATOR, JOB_RUN_SERVICE, JOB_STEP_SERVICE };
