import { type SchemaEintrag, type SchemaObjekt, type Wertverweis } from './vokabular.js'; export type Objekt = Record; export declare const hat: (o: object, k: string) => boolean; export declare const istObjekt: (w: unknown) => w is Objekt; /** Schema-Eintrag zerlegt: innerer Name, Unterschema (ohne `__`) und ob es eine Liste ist. */ export declare function regel(eintrag: SchemaEintrag): { innen: string; unter: SchemaObjekt | null; liste: boolean; }; /** Innere Namen einer Schema-Ebene (was der Server innen an dieser Stelle kennt). */ export declare function innereNamen(schema: SchemaObjekt): Map; /** Zuordnung eines Wertverweises: benannter Katalog oder eingebettet. */ export declare function katalogVon(verweis: Wertverweis): Readonly> | undefined; /** Rueckgabe-Wahl innen -> aussen (Katalog RUECKGABE; stored.test.ts vergleicht mit dem Vertrag). */ export declare const _RUECKGABE_NACH_AUSSEN: Readonly>; /** * Ein Belegdokument, wie Handler und Rand es vor der Uebersetzung sehen: * ohne Storno-Marke, Lager-Standort, Lade und Schicht (storno-core.ohneInterneBelegFelder, * Rand ohneStornoMarke). Alles andere bleibt woertlich, auch `pruefangaben` im * Beleg selbst (der Server reicht sie so durch). Wirft, wenn es kein * Belegdokument ist. */ export declare function _storedReceiptInner(doc: unknown, functionName: string): Objekt; /** * Registrierdaten der Huelle aus den beim Ausstellen festgehaltenen * `pruefangaben` (Zwilling von `pruefangabenFuerBeleg`, erster Zweig): genau * die zwei Felder, je ueber [alsIso]. */ export declare function pruefangabenDerHuelle(p: Objekt): Objekt; /** * Eine Beleg-Huelle der inneren Form (`receipt`, Betriebsfelder, `kopfId`, * `pruefangaben`, `testKasse` ...) in die Drahtform von `getReceipt` unter * `/api/v3` (Kanal `app`: Anbieterdaten bleiben). */ export declare function _receiptEnvelopeToWire(huelle: Objekt): Objekt; /** * Ein Belegdokument (`users/{uid}/cashregisters/{id}/receipts/{id}`) in der * Form von `data.receipt` einer `/api/v3`-Antwort (Kanal `app`: Anbieterdaten * bleiben). Wirft, wenn es kein Belegdokument ist. */ export declare function _storedReceiptToWire(doc: unknown, functionName?: string): Objekt; /** * Ein Artikeldokument (`users/{uid}/articles/{id}`) in der Form eines * Eintrags von `listMyArticles` unter `/api/v3`. Vor dem Rand ergaenzt der * Handler `groupId`/`revenueGroupId` (fehlt -> `null`) und die Kachel * (article-endpoints.js listMyArticles); das steht nicht im Vertrag. */ export declare function _storedArticleToWire(id: string, doc: unknown, functionName?: string): Objekt;