/** * Narrow row-check read for the formula check-column polling gate. * * Reads ONLY three single-column bands of each requested User_Input tab — * the identity (business-key) column, the system row-id (anchor) column, * and the row-check formula column — in ONE paced `spreadsheets.get` with a * values-only mask. At the 300-row/3-data-column stub scale the gated read * is ~500 bytes/row (dominated by the formula text the provenance check * transfers) versus ~1.25 KB/row for the historical whole-table * metadata-preserving observation on the same fixtures — and the REAL * observation read carries far heavier per-cell format wrappers (the live * polling pass measured 2.95 MB before this gate). The polling side diffs * each returned check string against the value derived from canonical * SQLite state and escalates ONLY mismatched rows to a targeted full-field * snapshot read, so clean tabs never read a data column. * * Row mapping uses the visible identity column: it is the key inbound * inspection already resolves by (business key → entity → canonical state), * and unlike the system row-id column it exists for every system-written * AND human-typed row, keeping unknown/duplicate-identity detection exact. * The anchor band is read ALONGSIDE it so a clean poll can still prove the * system row-id cell was not deleted, duplicated, or moved off its row — * the provider reports the observed anchor value and the polling gate * escalates any anomaly to the whole-table observation (the authoritative * row-mapping/orphan-evidence path). * * Check evidence carries FORMULA PROVENANCE: a row's check string is * reported ONLY when the check cell still holds the EXACT system-generated * formula for that row. A human (or paste) that replaced the cell with a * literal equal to the current expected string, a foreign formula, or a * blank cell yields NO check evidence, so the gate can never be satisfied * by a stale copy and the row falls through to the full-field read. * * `status` is `checks_unavailable` when the tab has no provisioned check * column (the cell directly after the registered range does not carry the * `__hikoutei_row_check` header); callers then fall back to the historical * whole-table observation for that tab (mixed mode). A missing tab or a * malformed payload fails closed like every other provider read. */ import type { ReadSyncRowChecksRequest, SyncRowChecksResult } from "../../../../contracts/sheets/syncSheets.js"; import { type GoogleSheetsApiProviderDeps } from "./shared.js"; /** Reads several registered tabs' check bands through ONE REST read. */ export declare function readRowChecksBatch(deps: GoogleSheetsApiProviderDeps, requests: readonly ReadSyncRowChecksRequest[]): Promise; //# sourceMappingURL=rowChecks.d.ts.map