/** * Zeilenmodell und Drucklogo in der inneren Form (deutsch) <-> Form 1.0. * * Die innere Form ist die, die das Backend speichert und am Draht `/api` * (Kanal intern) spricht, und die, in der 0.x das Zeilenmodell im Browser * zwischengespeichert hat: * * - Zeilenmodell: `regelwerk` statt `ruleset`, Bannerzeilen mit `ton` * (`belegart`, `warnung`) statt `tone` (`receipt_type`, `warning`); * - Drucklogo (`createPrintJob`, Parameter `logo`): `stufe`, `pxBreite`, * `pxHoehe`, `breite`, `hoehe`, `zeilen` (Base64, MSB zuerst) statt * [PrintLogo] (`size`, `pixelWidth`, `pixelHeight`, `raster`). * * Dieselben Namen wie der Rand des Backends unter `/v3` (Vokabular * `createPrintJob`/`getReceiptWithCompany`: `layout.ruleset` <-> `regelwerk`, * `lines[].tone` <-> `ton`, Katalog `LAYOUT_TON`, `logo.scale` <-> `stufe` ...). * Ein unbekannter Ton geht woertlich durch, wie ihn auch der Rand durchreicht. */ import type { ReceiptLayout } from '../receipt/layout.js'; import type { PrintLogo } from '../receipt/layout-escpos.js'; /** * Ein Zeilenmodell in der inneren Form (0.x-Zwischenspeicher, Antwort unter * `/api`) als [ReceiptLayout]. Nimmt auch die Form 1.0 an und laesst sie * unveraendert; so liest eine Funktion alte und neue Eintraege. Die * Reihenfolge der Schluessel bleibt. * * `null`, wenn es kein ganzes Zeilenmodell ist: fehlt, kein Objekt, keine * oder leere `lines`, eine Zeile, die kein Objekt ist, oder kein `paperSize`. * Dann baut der Aufrufer neu (`receiptLayoutFromResult` aus Beleg, Firma und * `testCashregister`/`testSignature`), und TESTKASSE und die Warnzeilen * stehen wieder da. Ein halb lesbares Zeilenmodell gewaenne sonst immer. */ export declare function fromStoredLayout(stored: unknown): ReceiptLayout | null; /** * Ein [ReceiptLayout] in der inneren Form, fuer einen Aufruf unter `/api` * (`createPrintJob`, `renderBelegPdfAdmin`) oder einen Leser der 0.x-Form, * in der Reihenfolge der Schluessel wie 0.31 (`lines`, `paperSize`, * `regelwerk`, sofern die Eingabe sie so hat). Ohne diese Uebersetzung liest * das Backend den Ton nicht, und der Rahmen der Warnzeilen (TESTKASSE, * Sicherheitseinrichtung ausgefallen) und des Belegart-Aufdrucks fiele am * Bon und im PDF weg. */ export declare function toStoredLayout(layout: ReceiptLayout): Record; /** * Ein [PrintLogo] in der inneren Form des Druckjobs (`createPrintJob` unter * `/api`): dieselben Punkte, die das Paket unter `/v3` als `logo` schickt. */ export declare function toStoredPrintLogo(logo: PrintLogo): Record; /** * Ein Drucklogo in der inneren Form als [PrintLogo]. Die Zeilen sind die * Rasterzeilen als Base64 (MSB zuerst, jede Zeile auf volle Bytes * aufgefuellt). Wirft `KasseneckValidationError`, wenn Stufe, Masse oder * Zeilen nicht zusammenpassen. */ export declare function fromStoredPrintLogo(stored: unknown): PrintLogo;