import type { JobConfig } from '../sdk/pipeline/types'; /** Anything carrying a job `source` block — the wire `JobConfig` or the form `FormJobConfig`. */ type JobLike = Pick; /** * Normalizes `source.server_name` — a bare string, a list, or absent — to a deduped list of * non-empty source names, so callers never have to branch on the wire union. */ export declare const readJobServerNames: (job: JobLike | undefined) => string[]; /** Whether a job declares the source(s) it targets. */ export declare const hasJobServerName: (job: JobLike | undefined) => boolean; /** * Whether a job names a source the pipeline does not have — left behind by a removed or renamed * source, or carried in from a job file authored against another pipeline. */ export declare const hasUnknownJobServerName: (job: JobLike | undefined, sourceNames: readonly string[]) => boolean; /** * Whether the job's source assignment needs the user's attention: absent, or naming a source the * pipeline does not have. A job that already names one or more known sources is deployable. */ export declare const needsJobSourceSelection: (job: JobLike | undefined, sourceNames: readonly string[]) => boolean; /** * Writes a source assignment. One name is a bare string (backward compatible with older RDI); * several names are a list; none omits the key entirely — never `server_name: []`. */ export declare const writeJobServerNames: (job: TJob, serverNames: readonly string[]) => TJob; export {};