import type { z } from 'zod'; export declare abstract class GarItem { /** @description FIAS record type */ abstract readonly type: T; /** @description Path to XML file */ readonly filePath: string; /** @description Unprocessed FIAS record attributes */ readonly raw: Readonly>; /** @description FIAS record data */ readonly data: D; /** @description Schema for data validation */ protected abstract get schema(): GarItem.Schema; /** @description Constructor for creating a GarItem instance */ constructor(options: GarItem.ParseOptions); /** @description Parses raw data using the schema */ private parse; /** @description Returns the object in JSON format */ toJSON(): GarItem.Result; } export declare namespace GarItem { type Schema = z.ZodType>; interface ParseOptions { /** @description Path to XML file */ readonly filePath: string; /** @description Unprocessed FIAS record attributes */ readonly attributes: Readonly>; } interface Result { /** @description FIAS record type */ readonly type: T; /** @description FIAS record data */ readonly data: D; } }