import type { DocumentType } from "./documentTypes.js"; export interface PrintDocumentInput { /** Documentsoort, bijv. "pakbon" of "productiebon". */ documenttype: DocumentType | string; /** Optioneel: specifieke layout. Anders wordt de standaardlayout gebruikt. */ layoutId?: string; /** Optioneel: specifieke printer. Anders wordt er automatisch gekozen. */ printerId?: string; /** Optioneel: naam van de werkplek/computer waar dit vandaan komt. */ werkplek?: string; /** * Optioneel: de printplek (fysieke plek, bijv. een pickstation) waar dit * document uit moet komen. Wint van `werkplek` bij de printerkeuze. */ printplekId?: string; /** Naam zoals die in de wachtrij verschijnt. */ documentnaam: string; kopieen?: number; /** Optioneel: waar de order vandaan komt ("floriday" of "eigen"). */ herkomst?: string; /** * Vrije data die bij het afdrukken gebruikt wordt. Geef hierin ALTIJD een * order-kenmerk mee (`queue_item_id`, `order_id` of `ordernummer`): daarmee * kunnen twee verschillende orders nooit als dubbele aanvraag worden gezien. */ payload?: Record; isHerprint?: boolean; } export interface PrintDocumentResult { jobId: string; layoutId: string; printerId: string | null; } /** Fout wanneer een identieke aanvraag kort geleden al is aangemaakt. */ export declare class DubbeleAanvraagFout extends Error { name: string; constructor(); } /** Fout wanneer nergens een printer voor dit document is ingesteld. */ export declare class GeenPrinterFout extends Error { name: string; constructor(melding: string); } /** * Zet een document in de printwachtrij. Bedoeld voor gebruik vanuit andere * modules binnen dezelfde shell en database. */ export declare function printDocument(input: PrintDocumentInput): Promise; /** * De printer die aan een documentsoort hangt: eerst de regel van de printplek, * dan de uitzondering voor de werkplek, dan de standaard (of nieuwste actieve) * layout voor die soort met zijn printerkoppeling, anders de koppeling op * papierformaat. Geeft `null` als er niets gekoppeld is. */ export declare function printerVoorDocumenttype(documenttype: DocumentType | string, papierformaat?: string, werkplek?: string, printplekId?: string): Promise; /** * De printer die bij een concrete layout hoort. Handig bij voorbeeldafdrukken: * daar weet je precies welke layout je aan het ontwerpen bent, zodat er niet * eerst een andere layout van dezelfde documentsoort gezocht hoeft te worden. */ export declare function printerVoorLayout(layout: { id?: string | null; documenttype?: string | null; papierformaat?: string | null; }, werkplek?: string, printplekId?: string): Promise; /** Afdrukmethode van één printer, gebruikt voor PDF-specifieke voorcontroles. */ export declare function printerAfdrukmethode(printerId: string): Promise; export interface PrintPdfInput { /** Documentsoort, alleen voor overzicht en printerkeuze. */ documenttype: DocumentType | string; documentnaam: string; /** PDF als base64 (met of zonder data:-voorvoegsel) óf een webadres. */ pdfBase64?: string; pdfUrl?: string; /** * Optioneel. Zonder printer wordt de printer bepaald via de gekoppelde * layout of het papierformaat van de documentsoort. */ printerId?: string; /** Optioneel: werkplek/computernaam; bepaalt mee welke printer wordt gekozen. */ werkplek?: string; /** Optioneel: printplek (bijv. een pickstation); wint van `werkplek`. */ printplekId?: string; kopieen?: number; papierformaat?: string; /** Optioneel: waar de order vandaan komt ("floriday" of "eigen"). */ herkomst?: string; payload?: Record; isHerprint?: boolean; } /** * Print een kant-en-klare PDF (klantsticker, Floriday-document, factuur van een * externe dienst). De PDF gaat ongewijzigd naar de printer; er wordt geen * layout gebruikt om het document op te bouwen. */ export declare function printPdf(input: PrintPdfInput): Promise<{ jobId: string; }>; export interface PrintHtmlInput { documenttype: DocumentType | string; documentnaam: string; /** De opmaak die exact zo afgedrukt moet worden. */ html: string; /** Printer; mag weggelaten worden als er een printplek of werkplek is. */ printerId?: string; /** Optioneel: printplek (bijv. een pickstation); bepaalt de printer. */ printplekId?: string; /** Optioneel: werkplek/computernaam; bepaalt de printer. */ werkplek?: string; kopieen?: number; /** Optioneel: waar de order vandaan komt ("floriday" of "eigen"). */ herkomst?: string; payload?: Record; isHerprint?: boolean; } /** * Print eigen opmaak. Er wordt bewust géén layout meegegeven: een gekoppelde * layout wint altijd van meegestuurde HTML. */ export declare function printHtml(input: PrintHtmlInput): Promise<{ jobId: string; }>; /** * De printer die bij een werkplek hoort. Een werkplek is de naam van de * computer waarop het printprogramma draait; printers worden daaraan gekoppeld * via hun locatie of systeemnaam. */ export declare function printerVoorWerkplek(werkplek: string, papierformaat?: string): Promise; export interface JobStatus { id: string; status: string; documentnaam: string; foutmelding: string | null; lokale_pdf_status: string | null; lokale_pdf_fout: string | null; lokaal_opgeslagen_op: string | null; } /** * Volgt één printopdracht live. Geeft een functie terug om te stoppen. * Zo hoeft geen enkele andere module zelf een realtime-abonnement te bouwen. */ export declare function volgJobStatus(jobId: string, cb: (status: JobStatus) => void): () => void; /** Alle beschikbare layouts voor een documentsoort (voor keuzelijsten elders). */ export declare function beschikbareLayouts(documenttype?: string): Promise<{ id: string; naam: string; documenttype: string; papierformaat: string; orientatie: string; is_standaard: boolean; }[]>; /** Alle actieve printers (voor keuzelijsten elders). */ export declare function beschikbarePrinters(): Promise<{ id: string; naam: string; soort: string; locatie: string | null; papierformaat: string | null; online: boolean; actief: boolean; }[]>; export interface VerzendbriefVoorKarInput { /** Naam van de computer/werkplek van de scanner; bepaalt de printer. */ werkplek?: string; /** Optioneel: de printplek van de scanner. Wint van `werkplek`. */ printplekId?: string; /** Optioneel papierformaat voor werkplekken met meerdere printers. */ papierformaat?: string; /** Kargegevens zoals bij de pakbon: cart_id, cart_label, barcode, ... */ cart: Record; /** Order-/klantgegevens zoals bij de pakbon. */ order?: Record; /** Optioneel: naam in de wachtrij. Standaard "Verzendbrief ". */ documentnaam?: string; herkomst?: string; kopieen?: number; /** Bewuste herprint: slaat de dubbelbeveiliging over. */ isHerprint?: boolean; } /** * Print de verzendbrief van één kar. Bedoeld voor de scanmodule op het moment * dat een medewerker op "kar compleet" klikt. De brief gaat naar de printer van * dezelfde werkplek als de pakbon; is die er niet, dan naar de standaardprinter * van dit documenttype. Zonder printer volgt een `GeenPrinterFout` — er wordt * nooit stiekem in de browser geprint. */ export declare function printVerzendbriefVoorKar(input: VerzendbriefVoorKarInput): Promise; //# sourceMappingURL=printApi.d.ts.map