export type DocumentType = "pakbon" | "sticker" | "productiebon" | "factuur" | "offerte" | "orderbevestiging" | "etiket" | "verzendlabel" | "productlabel" | "barcode_label" | "magazijnlijst" | "controlelijst" | "transportdocument" | "veilingbon" | "afleverbrief" | "veilingbrief" | "vrij"; export declare const DOCUMENT_TYPES: { value: DocumentType; label: string; }[]; export declare function documentTypeLabel(value: string): string; export interface PapierFormaatDef { code: string; label: string; breedte: number; hoogte: number; } export declare const PAPIERFORMATEN: PapierFormaatDef[]; export type ElementType = "tekst" | "veld" | "afbeelding" | "logo" | "lijn" | "rechthoek" | "cirkel" | "barcode" | "qrcode" | "tabel" | "lijst" | "paginanummer" | "datum" | "tijd" | "handtekening" | "svg" | "html"; export interface ElementStijl { fontfamilie?: string; fontgrootte?: number; vet?: boolean; cursief?: boolean; onderstreept?: boolean; kleur?: string; achtergrond?: string; randbreedte?: number; randkleur?: string; padding?: number; uitlijning?: "left" | "center" | "right"; transparantie?: number; regelhoogte?: number; } export interface TabelKolom { key: string; kop: string; veldpad: string; breedte: number; uitlijning?: "left" | "center" | "right"; totaal?: boolean; } export interface ElementConditie { veld: string; operator: "=" | "!=" | ">" | "<" | "bevat" | "leeg" | "niet_leeg"; waarde: string; } export interface ElementConfig { kolommen?: TabelKolom[]; bron?: string; toonKoppen?: boolean; toonTotalen?: boolean; regelhoogte?: number; formaat?: string; barcodeType?: string; html?: string; svg?: string; bronUrl?: string; /** verwijst naar een sectie uit de pakbon-opbouw (SECTIE_REGISTER) */ pakbonSectie?: string; } export interface LayoutElementModel { key: string; type: ElementType; volgorde: number; x: number; y: number; breedte: number; hoogte: number; rotatie: number; zIndex: number; content: string; veldpad: string | null; /** verwijzing naar de centrale Logo Bibliotheek (layout_logos.id) */ logoId?: string | null; stijl: ElementStijl; config: ElementConfig; condities: ElementConditie[]; vergrendeld: boolean; verborgen: boolean; groep?: string | null; } export interface PageSettings { header?: string; footer?: string; paginanummering?: boolean; watermerk?: string; achtergrond?: string; raster?: number; } export interface LayoutModel { id: string; naam: string; documenttype: DocumentType; omschrijving: string; papierformaat: string; breedte_mm: number; hoogte_mm: number; marge_boven: number; marge_onder: number; marge_links: number; marge_rechts: number; orientatie: "portrait" | "landscape"; actief: boolean; is_standaard: boolean; thumbnail_url: string | null; huidige_versie: number; page_settings: PageSettings; /** documentspecifieke configuratie, opgebouwd uit het documentprofiel */ config?: Record>; /** herkomst van het document: "eigen" ontwerp of "floriday" */ bron?: string; /** vaste layout die niet mag worden aangepast of verwijderd */ systeem?: boolean; updated_at: string; } /** Is dit een vaste layout voor een document dat uit Floriday komt? */ export declare function isFloridayLayout(l: { bron?: string | null; systeem?: boolean | null; }): boolean; /** Toelichting bij een Floriday-layout. */ export declare const FLORIDAY_LAYOUT_TOELICHTING = "Document komt kant-en-klaar uit Floriday en wordt 1-op-1 afgedrukt."; /** Vaste layouts die altijd aanwezig moeten zijn (documenten uit Floriday). */ export declare const FLORIDAY_SYSTEEM_LAYOUTS: readonly [{ readonly naam: "Afleverbrief (Floriday)"; readonly documenttype: "afleverbrief"; readonly papierformaat: "A4"; readonly breedte_mm: 210; readonly hoogte_mm: 297; }, { readonly naam: "Veilingbrief (Floriday)"; readonly documenttype: "veilingbrief"; readonly papierformaat: "A4"; readonly breedte_mm: 210; readonly hoogte_mm: 297; }, { readonly naam: "Sticker (Floriday)"; readonly documenttype: "sticker"; readonly papierformaat: "LABEL_100x62"; readonly breedte_mm: 100; readonly hoogte_mm: 62; }]; /** Toelichting bij een standaardlayout (geen Floriday-document). */ export declare const STANDAARD_LAYOUT_TOELICHTING = "Standaarddocument voor eigen orders. Volledig aanpasbaar \u2014 aanpassen kan per klant."; /** * Standaardlayouts die bij een verse shell altijd worden toegevoegd, los van * Floriday. Deze zijn "eigen" (niet systeem) en dus vrij aanpasbaar/verwijderbaar. * Het seeden gebeurt slechts één keer per shell (zie useDocumentData); als een * gebruiker een layout verwijdert, wordt deze niet opnieuw aangemaakt. */ export declare const STANDAARD_LAYOUTS: readonly [{ readonly naam: "Pakbon"; readonly documenttype: "pakbon"; readonly papierformaat: "A4"; readonly breedte_mm: 210; readonly hoogte_mm: 297; readonly omschrijving: "Standaarddocument voor eigen orders. Volledig aanpasbaar — aanpassen kan per klant."; }, { readonly naam: "Afleverbrief (BVO)"; readonly documenttype: "afleverbrief"; readonly papierformaat: "A4"; readonly breedte_mm: 210; readonly hoogte_mm: 297; readonly omschrijving: "Verzendbrief voor eigen (niet-Floriday) orders. Volledig aanpasbaar."; }, { readonly naam: "Productiebon"; readonly documenttype: "productiebon"; readonly papierformaat: "A4"; readonly breedte_mm: 210; readonly hoogte_mm: 297; readonly omschrijving: "Standaard productiebon met de vaste blokindeling. Volledig aanpasbaar."; }]; export interface LayoutVariabele { id?: string; naam: string; expressie: string; omschrijving: string; } export declare const ELEMENT_STANDAARD: Record; export declare const STANDAARD_STIJL: ElementStijl; export declare const STANDAARD_KOLOMMEN: TabelKolom[]; //# sourceMappingURL=documentTypes.d.ts.map