/** * Two ways a `row=` link stops linking anything: a mixed `order=`, and members * reading different files. * * `order="sequential"` on SOME members of a `row=` link. * * `row="k"` exists to keep a record together: every generator carrying the key * reads the SAME line of the CSV, so `first_name` and `last_name` belong to one * person. `order="sequential"` picks a line too — by the row's position. Two * rules choosing the same line, and only one of them can win. * * Measured on the files guide's own users.csv, one member sequential: * * John Johnson John is Smith in the file * Mary Brown Mary is Johnson * James Williams * Emma Brown right, by luck * * `check` called that valid. It re-introduces exactly the drift `row=` exists to * prevent, and it does it while the config plainly says the two belong together. * * The refusal is narrow on purpose: when EVERY member of the link is sequential * they agree — both rules pick by position — and the records hold. Only a MIXED * link is proof of a contradiction, because two members of one link cannot both * be reading the line the other reads. */ import { type Diagnostic } from '../errors/index.js'; import type { OpenCloseElementContext, SelfClosingElementContext } from '../generated/TDCParser.js'; type GenElement = OpenCloseElementContext | SelfClosingElementContext; /** * Members of one `row=` link that read DIFFERENT files. * * One line of one file is what a link is, so two files under one key is not a * request the engine can grant — and the two engines did not agree on how to * fail it. The in-memory engine threw `row link "k" cannot mix different file * sources`: no code, no line, no file. The streaming engine granted it, pairing * the two files by proportion, which for a 3-row file and a 2-row file gave * ann/10, ann/10, ann/10, cal/20 — a join nobody asked for, printed as data. * * One config, two answers, and the wrong one is the silent one. Only `src` is * compared: two members legitimately read different columns of one file, and a * link is exactly what makes that a record. */ export declare function checkRowLinkSource(gens: readonly GenElement[], diagnostics: Diagnostic[]): void; export declare function checkRowLinkOrder(gens: readonly GenElement[], diagnostics: Diagnostic[]): void; export {}; //# sourceMappingURL=row-link-order.d.ts.map