import { z } from 'zod';
/**
 * B100 Record Schema - Journal entry line record
 * Fields 1350-1377 based on SHAAM 1.31 specification table
 */
export declare const B100Schema: z.ZodObject<{
    code: z.ZodLiteral<"B100">;
    recordNumber: z.ZodNumber;
    vatId: z.ZodString;
    transactionNumber: z.ZodNumber;
    transactionLineNumber: z.ZodNumber;
    batchNumber: z.ZodOptional<z.ZodNumber>;
    transactionType: z.ZodDefault<z.ZodString>;
    referenceDocument: z.ZodDefault<z.ZodString>;
    referenceDocumentType: z.ZodOptional<z.ZodEnum<{
        100: "100";
        200: "200";
        210: "210";
        300: "300";
        305: "305";
        320: "320";
        325: "325";
        330: "330";
        340: "340";
        400: "400";
        410: "410";
        420: "420";
        430: "430";
        500: "500";
        600: "600";
        700: "700";
        710: "710";
    }>>;
    referenceDocument2: z.ZodDefault<z.ZodString>;
    referenceDocumentType2: z.ZodOptional<z.ZodEnum<{
        100: "100";
        200: "200";
        210: "210";
        300: "300";
        305: "305";
        320: "320";
        325: "325";
        330: "330";
        340: "340";
        400: "400";
        410: "410";
        420: "420";
        430: "430";
        500: "500";
        600: "600";
        700: "700";
        710: "710";
    }>>;
    details: z.ZodDefault<z.ZodString>;
    date: z.ZodString;
    valueDate: z.ZodString;
    accountKey: z.ZodString;
    counterAccountKey: z.ZodDefault<z.ZodString>;
    debitCreditIndicator: z.ZodEnum<{
        1: "1";
        2: "2";
    }>;
    currencyCode: z.ZodOptional<z.ZodEnum<{
        AUD: "AUD";
        CAD: "CAD";
        EUR: "EUR";
        GBP: "GBP";
        ILS: "ILS";
        JPY: "JPY";
        SEK: "SEK";
        USD: "USD";
        CHF: "CHF";
        CNY: "CNY";
        RUB: "RUB";
        BRL: "BRL";
        HKD: "HKD";
        SGD: "SGD";
        THB: "THB";
        MXN: "MXN";
        TRY: "TRY";
        NZD: "NZD";
        NOK: "NOK";
        DKK: "DKK";
        KRW: "KRW";
        INR: "INR";
        PLN: "PLN";
        ZAR: "ZAR";
        CZK: "CZK";
        HUF: "HUF";
    }>>;
    transactionAmount: z.ZodNumber;
    foreignCurrencyAmount: z.ZodOptional<z.ZodNumber>;
    quantityField: z.ZodOptional<z.ZodNumber>;
    matchingField1: z.ZodDefault<z.ZodString>;
    matchingField2: z.ZodDefault<z.ZodString>;
    branchId: z.ZodDefault<z.ZodString>;
    entryDate: z.ZodString;
    operatorUsername: z.ZodDefault<z.ZodString>;
    reserved: z.ZodDefault<z.ZodString>;
}, z.core.$strip>;
export type B100 = z.infer<typeof B100Schema>;
/**
 * Encodes a B100 record to fixed-width string format
 * Total line width: 317 characters + CRLF
 */
export declare function encodeB100(input: B100): string;
/**
 * Parses a fixed-width B100 record line back to object
 * Expected line length: 317 characters (excluding CRLF)
 */
export declare function parseB100(line: string): B100;
