/** * SLURM implementation of the Scheduler interface. * * Everything shells out to the standard SLURM client CLIs (sbatch, squeue, * scancel, sinfo, sacctmgr, sacct). The Nebula main server runs on the login * node where these are available; detection is capability-based. */ import type { Scheduler, JobSpec, JobStatus, StartEstimate, Associations, QueueLoad } from './types'; export declare class SlurmScheduler implements Scheduler { readonly name = "slurm"; /** Cache of per-partition required-QoS (site job-submit filters change rarely). */ private qosCache; private static readonly LOAD_TTL_MS; private static readonly ASSOC_TTL_MS; private loadCache; private loadInflight; private assocCache; private assocInflight; detect(): Promise; associations(user: string): Promise; private associationsFresh; load(): Promise; private loadFresh; partitionArch(partition: string): Promise; allowedQos(partition: string): Promise; estimateStart(spec: JobSpec): Promise; submit(scriptPath: string): Promise<{ jobId: string; }>; query(jobId: string): Promise; cancel(jobId: string): Promise; }