import { z } from 'zod';
/**
 * A000 Record Schema - INI.TXT file header record
 * Fields 1000-1035 based on SHAAM uniform format specification
 */
export declare const A000Schema: z.ZodObject<{
    code: z.ZodLiteral<"A000">;
    reservedFuture: z.ZodOptional<z.ZodDefault<z.ZodString>>;
    totalRecords: z.ZodString;
    vatId: z.ZodString;
    primaryIdentifier: z.ZodString;
    systemConstant: z.ZodLiteral<"&OF1.31&">;
    softwareRegNumber: z.ZodString;
    softwareName: z.ZodString;
    softwareVersion: z.ZodString;
    vendorVatId: z.ZodString;
    vendorName: z.ZodString;
    softwareType: z.ZodEnum<{
        1: "1";
        2: "2";
    }>;
    fileOutputPath: z.ZodString;
    accountingType: z.ZodEnum<{
        0: "0";
        1: "1";
        2: "2";
    }>;
    balanceRequired: z.ZodEnum<{
        0: "0";
        1: "1";
        2: "2";
    }>;
    companyRegId: z.ZodDefault<z.ZodString>;
    withholdingFileNum: z.ZodDefault<z.ZodString>;
    reserved1017: z.ZodOptional<z.ZodDefault<z.ZodString>>;
    businessName: z.ZodString;
    businessStreet: z.ZodDefault<z.ZodString>;
    businessHouseNum: z.ZodDefault<z.ZodString>;
    businessCity: z.ZodDefault<z.ZodString>;
    businessZip: z.ZodDefault<z.ZodString>;
    taxYear: z.ZodDefault<z.ZodString>;
    startDate: z.ZodDefault<z.ZodString>;
    endDate: z.ZodDefault<z.ZodString>;
    processStartDate: z.ZodString;
    processStartTime: z.ZodString;
    languageCode: z.ZodEnum<{
        0: "0";
        1: "1";
        2: "2";
    }>;
    characterEncoding: z.ZodEnum<{
        1: "1";
        2: "2";
    }>;
    compressionSoftware: z.ZodDefault<z.ZodString>;
    reserved1031: z.ZodOptional<z.ZodDefault<z.ZodString>>;
    baseCurrency: z.ZodDefault<z.ZodString>;
    reserved1033: z.ZodOptional<z.ZodDefault<z.ZodString>>;
    branchInfoFlag: z.ZodEnum<{
        0: "0";
        1: "1";
    }>;
    reserved1035: z.ZodOptional<z.ZodDefault<z.ZodString>>;
}, z.core.$strip>;
/**
 * A000 Input Schema - for user input (excludes auto-generated fields)
 */
export declare const A000InputSchema: z.ZodObject<{
    businessName: z.ZodString;
    taxYear: z.ZodDefault<z.ZodString>;
    startDate: z.ZodDefault<z.ZodString>;
    endDate: z.ZodDefault<z.ZodString>;
    totalRecords: z.ZodString;
    vatId: z.ZodString;
    accountingType: z.ZodEnum<{
        0: "0";
        1: "1";
        2: "2";
    }>;
    reservedFuture: z.ZodOptional<z.ZodDefault<z.ZodString>>;
    softwareRegNumber: z.ZodString;
    softwareName: z.ZodString;
    softwareVersion: z.ZodString;
    vendorVatId: z.ZodString;
    vendorName: z.ZodString;
    softwareType: z.ZodEnum<{
        1: "1";
        2: "2";
    }>;
    fileOutputPath: z.ZodString;
    balanceRequired: z.ZodEnum<{
        0: "0";
        1: "1";
        2: "2";
    }>;
    companyRegId: z.ZodDefault<z.ZodString>;
    withholdingFileNum: z.ZodDefault<z.ZodString>;
    reserved1017: z.ZodOptional<z.ZodDefault<z.ZodString>>;
    businessStreet: z.ZodDefault<z.ZodString>;
    businessHouseNum: z.ZodDefault<z.ZodString>;
    businessCity: z.ZodDefault<z.ZodString>;
    businessZip: z.ZodDefault<z.ZodString>;
    processStartDate: z.ZodString;
    processStartTime: z.ZodString;
    languageCode: z.ZodEnum<{
        0: "0";
        1: "1";
        2: "2";
    }>;
    characterEncoding: z.ZodEnum<{
        1: "1";
        2: "2";
    }>;
    compressionSoftware: z.ZodDefault<z.ZodString>;
    reserved1031: z.ZodOptional<z.ZodDefault<z.ZodString>>;
    baseCurrency: z.ZodDefault<z.ZodString>;
    reserved1033: z.ZodOptional<z.ZodDefault<z.ZodString>>;
    branchInfoFlag: z.ZodEnum<{
        0: "0";
        1: "1";
    }>;
    reserved1035: z.ZodOptional<z.ZodDefault<z.ZodString>>;
}, z.core.$strip>;
export type A000 = z.infer<typeof A000Schema>;
export type A000Input = z.infer<typeof A000InputSchema>;
/**
 * Encodes an A000 record to fixed-width string format
 * Total line width: 466 characters + CRLF
 */
export declare function encodeA000(input: A000Input): string;
/**
 * Parses a fixed-width A000 record line back to object
 * Expected line length: 466 characters (excluding CRLF)
 */
export declare function parseA000(line: string): A000;
