interface PoolDefinition {
    /** Routing identifier — reused as the per-pool worker queue name. */
    queue: string;
    /** Max parallel in-flight `processRun` calls for this pool's worker. */
    concurrency: number;
    /** `true` ⇒ user `@JobHandler` may not target it. Framework-only. */
    reserved: boolean;
    /** Free-text annotation surfaced in admin UIs / logs. */
    description?: string;
}
type PoolConfig = Map<string, PoolDefinition>;
/**
 * Five framework defaults. Three reserved `events_*` pools drain the
 * `IEventBus` outbox (one per `DomainEvent.direction`); `interactive` and
 * `batch` are user-default pools (`batch` is the `@JobHandler` default
 * when no `pool` is specified).
 */
declare const FRAMEWORK_POOLS: Readonly<Record<string, PoolDefinition>>;
/** Names of the framework reserved pools. Cheap inline lookup for the worker. */
declare const RESERVED_POOL_NAMES: ReadonlySet<string>;
/**
 * Reset the loader cache. Test-only — not exported from the package
 * `index.ts`. Useful for tests that mutate `process.cwd()` between cases.
 */
declare function _resetPoolConfigCacheForTests(): void;
/**
 * Resolve the merged pool config.
 *
 * @param configPath optional absolute or cwd-relative path; defaults to
 *                   `${process.cwd()}/codegen.config.yaml`.
 */
declare function loadPoolConfig(configPath?: string): PoolConfig;
/**
 * Names of every non-reserved pool in the resolved config. The default
 * worker activation set when `JobWorkerModuleOptions.pools` is omitted —
 * the worker process never claims the reserved `events_*` pools by
 * default; those are bound by the events subsystem's outbox bridge.
 */
declare function allNonReservedPoolNames(config: PoolConfig): string[];
/**
 * Names of **every** pool in the resolved config, reserved `events_*` lanes
 * included. The activation set for a standalone worker booted with
 * `JobWorkerModule.forRoot({ allPools: true })` (BULLMQ-1 Phase 1) — the
 * single worker process drains both user pools and the bridge's reserved
 * pools so wrapper `job_run` rows are never stranded.
 */
declare function allPoolNames(config: PoolConfig): string[];

export { FRAMEWORK_POOLS, type PoolConfig, type PoolDefinition, RESERVED_POOL_NAMES, _resetPoolConfigCacheForTests, allNonReservedPoolNames, allPoolNames, loadPoolConfig };
