import type { ProjectionResult } from './projection.js'; import { type WorkbookSheet } from './workbook-xlsx.js'; /** * The model as a workbook an architect can work in (#355). * * The shape is borrowed from a real consulting workbook rather than invented: * identity is columnar and readability is derived. A stable id in column A, * foreign keys inline, and an adjacent `(auto)` column carrying the referenced * subject's NAME so a sheet reads without hunting across tabs. The id is what * round-trips; the `(auto)` column is a convenience and is ignored on import. * * Losslessness does not depend on this file enumerating every predicate * correctly. Well-known predicates become columns because a person needs them * to be columns; **everything else lands in `07 Other Facts` verbatim**, so a * predicate added to the compiler after this was written still survives a * round trip. A mapping that silently dropped what it did not recognise is the * failure this design exists to avoid. */ export declare const WORKBOOK_FORMAT = "yarramate/workbook/v1"; import { type Branding } from './branding.js'; export interface WorkbookProvenance { readonly workspace: string; readonly yarramateVersion: string; /** What the graph was compiled from, the pin a later import checks. */ readonly sourceDigests: Readonly>; /** Vocabulary for the dropdown lists, taken from the compiled profile. */ readonly conceptKinds: readonly string[]; readonly relationshipKinds: readonly string[]; readonly statuses: readonly string[]; } export declare const buildWorkbookSheets: (result: ProjectionResult, provenance: WorkbookProvenance, branding?: Branding) => readonly WorkbookSheet[]; /** The workbook, as bytes. Synchronous and deterministic. */ export declare const workbookFrom: (result: ProjectionResult, provenance: WorkbookProvenance, branding?: Branding) => Uint8Array;