/** Cross-job exclusion config — names the consumer's conflict columns; the mechanism is pipework's. */ export interface ExclusionConfig { /** Array column — two jobs whose arrays overlap (`&&`) are mutually exclusive. */ readonly arrayColumn?: string; /** Element type of `arrayColumn`. Default `'uuid'`. */ readonly arrayElementType?: 'uuid' | 'text'; /** Boolean column — a TRUE job is exclusive against every participating job in its scope. */ readonly blocksAllColumn?: string; /** Tenant column — exclusion checks compare only jobs with the same tenant value. */ readonly tenantColumn?: string; } export interface ResolvedExclusion { readonly arrayColumn?: string; readonly arrayElementType: 'uuid' | 'text'; readonly blocksAllColumn?: string; readonly tenantColumn?: string; } export declare function resolveExclusion(config: ExclusionConfig | undefined): ResolvedExclusion | undefined; /** * The claimability predicate for the claim query's candidate SELECT. Pure * identifiers — all quoted, no values — so the result composes as a raw SQL * fragment. The candidate row is aliased `candidate`, concurrent rows `r`. */ export declare function exclusionClaimClause(tableQ: string, exclusion: ResolvedExclusion): string; //# sourceMappingURL=exclusion.d.ts.map