import { KasseneckApiError } from '../client/errors.js'; /** * Die Arten einer Ausgabe (Katalog `AUSGABE_ART`): `print` Erstdruck, * `reprint` Duplikat, `email` Belegmail, `link_shared` Link geteilt, * `pdf_shared` PDF geteilt, `opened` vom Kunden geoeffnet (Abrufe je Stunde). */ export declare const RECEIPT_OUTPUT_KINDS: readonly ["print", "reprint", "email", "link_shared", "pdf_shared", "opened"]; export type ReceiptOutputKind = (typeof RECEIPT_OUTPUT_KINDS)[number]; /** * Die Arten, die eine Kasse selbst meldet. `email` und `opened` schreibt das * Backend selbst (beim Versand bzw. beim Abruf des Links); meldet eine Kasse * sie, lehnt der Server genau diesen Eintrag ab (`invalid_output_kind`). */ export declare const RECEIPT_OUTPUT_LOG_KINDS: readonly ["print", "reprint", "link_shared", "pdf_shared"]; export type ReceiptOutputLogKind = (typeof RECEIPT_OUTPUT_LOG_KINDS)[number]; /** Ergebnis einer Ausgabe (Katalog `AUSGABE_ERGEBNIS`); Mail und Abruf sind immer `ok`. */ export declare const RECEIPT_OUTPUT_RESULTS: readonly ["ok", "failed", "unclear"]; export type ReceiptOutputResult = (typeof RECEIPT_OUTPUT_RESULTS)[number]; /** Hoechstens so viele Eintraege je Aufruf von `logReceiptOutputs`. */ export declare const RECEIPT_OUTPUT_ENTRIES_MAX = 50; /** Wer die Ausgabe ausloeste: Kassen-Benutzer, bzw. beim Geraet mit api_key das Konto (`name: null`). */ export interface ReceiptOutputActor { id: string; name: string | null; } /** * Ein Eintrag aus `outputs` einer `getReceipt`-Antwort (`/v3`). Eine Art oder * ein Ergebnis, das dieses Paket noch nicht kennt (neuerer Server), bleibt * lesbar stehen; die Kasse zeigt es ohne Beschriftung. */ export interface ReceiptOutput { kind: ReceiptOutputKind | (string & {}); /** Zeitpunkt, ISO 8601 mit Wiener Zonenoffset; bei Kassenmeldungen der Zeitpunkt am Geraet, beim Abruf der erste der Stunde. */ at: string; result: ReceiptOutputResult | (string & {}); /** `null` beim Abruf durch den Kunden. */ by: ReceiptOutputActor | null; /** Nur bei `opened`: Zahl der Abrufe in dieser Stunde. */ count?: number; } /** * Liest `data.outputs` nachsichtig: das Protokoll ist eine Auskunft neben dem * Beleg und darf das Lesen, Anzeigen und Nachdrucken des Belegs nie scheitern * lassen. Keine Liste: `undefined` (Antwort ohne Protokoll, etwa `/api` oder * `createReceipt`). Ein Eintrag ohne lesbare Art, Zeit oder Ergebnis faellt * weg; ein Handelnder ohne Kennung gilt als `null`, eine Anzahl, die keine * ganze Zahl ab 0 ist, fehlt. Paketintern. */ export declare function receiptOutputsFromWire(roh: unknown): ReceiptOutput[] | undefined; /** * Codes je Eintrag in `rejected[].code` einer Antwort von * `logReceiptOutputs`: der Eintrag ist dauerhaft abgelehnt (aus dem Puffer * nehmen, nicht noch einmal senden). `validation` heisst hier: ein Druck ohne * oder mit unbekanntem Ergebnis. */ export declare const RECEIPT_OUTPUT_ENTRY_ERROR_CODES: readonly ["receipt_not_found", "invalid_output_kind", "output_time_out_of_range", "idempotency_key_required", "validation"]; export type ReceiptOutputEntryErrorCode = (typeof RECEIPT_OUTPUT_ENTRY_ERROR_CODES)[number]; /** * Fehlercodes von `logReceiptOutputs`, wenn die ganze Anfrage scheitert * (Vokabular `errorCodes.registerHandlersByEndpoint.logReceiptOutputs`), * dahinter die Codes, die Anmeldung und Rand auf diesem Endpunkt erzeugen * koennen (`errorCodes.auth` ohne die sieben des Partner-Zugangs, * `errorCodes.edge`), zuletzt `route_missing` (Code des Pakets). Ein Code * ausserhalb bleibt ueber `KasseneckApiError.code` lesbar. */ export declare const RECEIPT_OUTPUT_ERROR_CODES: readonly ["idempotency_key_required", "invalid_output_kind", "output_time_out_of_range", "receipt_not_found", "server_error", "validation", "account_not_found", "action_confirmation_required", "admin_required", "api_not_approved", "app_check_invalid", "app_check_missing", "cashregister_not_assigned", "cashregister_not_found", "cashregister_token_invalid", "cashregister_token_missing", "dialect_mismatch", "internal_translation_error", "live_not_enabled", "method_not_allowed", "mfa_required", "not_found", "password_change_required", "register_user_no_business", "register_user_not_allowed", "register_user_not_found", "response_translation_failed", "second_factor_required", "session_expired", "session_other_cashregister", "unauthorized", "user_disabled", "user_verification_failed", "route_missing"]; export type ReceiptOutputErrorCode = (typeof RECEIPT_OUTPUT_ERROR_CODES)[number]; export declare function isReceiptOutputErrorCode(value: unknown): value is ReceiptOutputErrorCode; /** Der Code eines geworfenen Fehlers, wenn er in [RECEIPT_OUTPUT_ERROR_CODES] steht; sonst `undefined`. */ export declare function receiptOutputErrorCode(error: unknown): ReceiptOutputErrorCode | undefined; /** Ohne `code`: traegt der Fehler ueberhaupt einen Code aus [RECEIPT_OUTPUT_ERROR_CODES]? */ export declare function isReceiptOutputError(error: unknown, code?: ReceiptOutputErrorCode): error is KasseneckApiError; /** Ein Feldfehler aus `data.errors[]` einer `validation`-Antwort von `logReceiptOutputs`. */ export interface ReceiptOutputFieldError { field: string; message: string; } /** Die Feldfehler einer `validation`-Antwort; leer, wenn es keine sind. */ export declare function receiptOutputFieldErrors(error: unknown): ReceiptOutputFieldError[];