import type { InstellingDef } from "./documentProfiles.js"; export type ProductiebonBlokType = "productinfo" | "productfotos" | "samenstelling" | "instructies" | "productiestappen" | "fustinformatie" | "belading" | "visueleopbouw" | "materialen" | "controlepunten" | "extrainfo" | "qrblok" | "tekstblok"; export interface ProductiebonVeld { key: string; label: string; tonen: boolean; kolom: "links" | "rechts" | "volledig"; grootte: number; fontfamilie: string; kleur: string; uitlijning: "left" | "center" | "right"; vet: boolean; } export interface ProductiebonKolom { key: string; label: string; breedte: number; uitlijning: "left" | "center" | "right"; fontgrootte?: number; fontfamilie?: string; kleur?: string; vet?: boolean; } export interface ProductiebonConditie { veld: string; operator: "=" | "!=" | ">" | "<" | "bevat" | "leeg" | "niet_leeg"; waarde: string; } export interface ProductiebonBlok { id: string; type: ProductiebonBlokType; titel: string; zichtbaar: boolean; opties: Record; velden?: ProductiebonVeld[]; kolommen?: ProductiebonKolom[]; condities: ProductiebonConditie[]; } export interface ProductiebonConfig { blokken: ProductiebonBlok[]; } export declare const LETTERTYPEN: string[]; export declare const PRODUCTINFO_VELDEN: { key: string; label: string; }[]; export declare function nieuwVeld(key: string, aan?: boolean): ProductiebonVeld; export declare const SAMENSTELLING_KOLOMMEN: { key: string; label: string; }[]; export declare const MATERIAAL_KOLOMMEN: { key: string; label: string; }[]; export declare function pbNieuweKolom(key: string, bibliotheek?: { key: string; label: string; }[]): ProductiebonKolom; export interface ProductiebonBlokDef { type: ProductiebonBlokType; label: string; omschrijving: string; /** blok werkt met de veldenbibliotheek (positie/grootte/lettertype per veld) */ velden?: boolean; /** blok werkt met een kolommenkiezer */ kolommen?: "samenstelling" | "materiaal"; opties: InstellingDef[]; } export declare const PB_BLOK_REGISTER: ProductiebonBlokDef[]; export declare function pbBlokDef(type: ProductiebonBlokType): ProductiebonBlokDef; export declare function nieuwBlok(type: ProductiebonBlokType): ProductiebonBlok; export declare function standaardProductiebonConfig(): ProductiebonConfig; export declare function leesProductiebonConfig(config: unknown): ProductiebonConfig; export interface DemoOnderdeel { soort: string; artikelnummer: string; artikelnaam: string; aantal: number; eenheid: string; locatie: string; barcode: string; opmerking: string; alternatief: string; voorraad: string; leverancier: string; productgroep: string; stap: string; } export declare const DEMO_PRODUCTIEBON: { product: { artikelnummer: string; artikelnaam: string; variant: string; omschrijving: string; potmaat: string; hoogte: string; kleur: string; productgroep: string; productiestatus: string; productiedatum: string; leverdatum: string; productieordernummer: string; klantnaam: string; bestelreferentie: string; barcode: string; qrcode: string; aantal: number; }; onderdelen: DemoOnderdeel[]; fust: Record; belading: Record; lagen: { laag: number; inhoud: string; opmerking: string; }[]; instructies: Record; extra: Record; qr: Record; }; export type DemoProductiebon = typeof DEMO_PRODUCTIEBON; export declare const ONDERDEEL_LABELS: Record; export declare const FUST_LABELS: Record; export declare const BELADING_LABELS: Record; export declare const EXTRA_LABELS: Record; export declare const QR_LABELS: Record; export declare const PB_CONDITIE_VELDEN: { value: string; label: string; }[]; export declare function pbConditieContext(data: DemoProductiebon): Record; export declare function pbBlokZichtbaar(blok: ProductiebonBlok, ctx: Record): boolean; /** Vervangt {{groep.veld}} codes door waarden uit de voorbeeldproductiebon. */ export declare function vulPbVeldcodes(tekst: string, data: DemoProductiebon): string; export declare function splitsLijst(waarde: unknown): string[]; //# sourceMappingURL=productiebonBuilder.d.ts.map