import type { SupabaseClient } from "@supabase/supabase-js"; type Job = Record; /** De databaseclient die de shell aanlevert. De module maakt er zelf nooit een. */ export type PrintDb = SupabaseClient; /** * Goedkope controle of de aangeleverde client de printtabellen kan lezen. * Vervangt de oude controle op omgevingsvariabelen: die kende de module niet * meer nu de shell de client levert. */ export declare function controleerClient(db: PrintDb): Promise; /** Fout waarbij opnieuw proberen zinloos is (er valt niets te printen). */ export declare class GeenDocumentFout extends Error { name: string; } /** De Engine heeft de taak gepland, maar de layout is nog niet aangeleverd. */ export declare class WachtOpLayoutFout extends Error { name: string; } /** Blijvende contractfout: opnieuw proberen met dezelfde invoer kan niet slagen. */ export declare class EngineContractFout extends GeenDocumentFout { name: string; } /** * `ontwerpWint` = deze layout is een echt ontwerp van deze module (actief, geen * Floriday-systeemlayout) en gaat daarom vóór meegestuurde HTML. Er is bewust * maar één schakelaar voor dit besluit: bron/systeem. Een tweede schakelaar * ("stond er een layout_id op de opdracht?") is verwijderd. */ export type LayoutKeuze = { layout: Job | null; ontwerpWint: boolean; }; /** Waar de uiteindelijke opmaak vandaan kwam (uitkomst, geen invoer). */ export type GebruikteBron = "extern_pdf" | "eigen_layout" | "render_html" | "klantlayout"; /** Meelifter waarin `bouwHtml` vastlegt welke bron het uiteindelijk werd. */ export type BronUitkomst = { bron: GebruikteBron; }; /** Zet een binnenkomend documenttype om naar de sleutel van deze module. */ export declare function normaliseerDocumenttype(type: unknown): string; /** Het layout-id zoals de Engine het aanlevert (kolom of payload). */ export declare function leesEngineLayoutId(job: Job): string; /** * Haalt een kant-en-klare PDF van de opdracht op (klantstickers, standaard * Floriday-documenten). Die gaat ongewijzigd naar de printer. */ export declare function kantEnKlarePdf(_db: PrintDb, job: Job): Promise; /** * Bouwt de HTML van de opdracht. * Volgorde: gekoppelde layout wint > meegestuurde HTML > actieve layout van * het documenttype. Zo werkt een bijgewerkte layout meteen door. */ export declare function bouwHtml(db: PrintDb, job: Job, keuze: LayoutKeuze, uitkomst?: BronUitkomst): Promise; /** * Controleert of het document echt iets afdrukt. Zonder deze controle kan een * lege layout of een opdracht zonder gegevens een blanco vel opleveren. */ export declare function heeftZichtbareInhoud(html: string): boolean; export interface WachtrijResultaat { opgepakt: number; verstuurd: number; mislukt: number; wachtend: number; bijgewerkt: number; /** Waarom deze ronde niets deed (bijvoorbeeld: een andere ronde draait al). */ overgeslagen?: string; } /** Eén ronde: vastgelopen opdrachten opruimen, afdrukken en statussen bijwerken. */ export declare function verwerkWachtrij(db: PrintDb, max?: number): Promise; /** * Dezelfde documentkeuze als de printwachtrij maakt, maar zonder printer en * zonder statuswijziging. Gebruikt door het voorbeeld (`preview-pdf`) zodat * het voorbeeld exact toont wat er straks uit de printer komt. */ export declare function bepaalDocumentKeuze(db: PrintDb, job: Job): Promise<{ keuze: LayoutKeuze; klaarPdf: string | null; }>; export {}; //# sourceMappingURL=printQueue.server.d.ts.map