/** * Projection provisioning for the Google Sheets API sync provider. * * Creates missing tabs and their header rows, or verifies existing tabs, in * ONE atomic batchUpdate. An existing tab with no content anywhere in its * used grid gets its headers initialized; an existing tab with content must * match the registered headers exactly (order, duplicates, width), otherwise * provisioning fails closed BEFORE any mutation. The operation is idempotent: * a retry after a lost response re-enumerates, sees the exact headers, and * succeeds without rewriting anything. */ import type { SyncSheetsProvisionRoute } from "../../../../contracts/sheets/sheetsProvisioning.js"; import { type GoogleSheetsApiProviderDeps } from "./shared.js"; /** * Creates missing tabs and their header rows, or verifies existing tabs, * in ONE atomic batchUpdate. An existing tab with no content anywhere in * its used grid gets its headers initialized; an existing tab with content * must match the registered headers exactly (order, duplicates, width; * user_input tabs additionally require the `__hikoutei_row_id` system * column as the last header), otherwise provisioning fails closed BEFORE * any mutation. The operation is idempotent: a retry after a lost response * re-enumerates, sees the exact headers, and succeeds without rewriting * anything. */ export declare function provisionRegistry(deps: GoogleSheetsApiProviderDeps, registrations: readonly SyncSheetsProvisionRoute[]): Promise<{ readonly registrations: readonly Omit[]; readonly createdSheets: readonly string[]; readonly initializedHeaders: readonly string[]; }>; //# sourceMappingURL=provisioning.d.ts.map