import type { TInvoice } from '../../interfaces/common.js'; import { ValidationLevel } from '../../interfaces/common.js'; import type { ValidationResult } from '../../interfaces/common.js'; /** * Base decoder class that defines common decoding functionality * for all invoice format decoders */ export abstract class BaseDecoder { protected xml: string; constructor(xml: string) { this.xml = xml; } /** * Decodes XML into a TInvoice object * @returns Promise resolving to a TInvoice object */ abstract decode(): Promise; /** * Gets letter data in the standard format * @returns Promise resolving to a TInvoice object */ public async getLetterData(): Promise { return this.decode(); } /** * Gets the raw XML content * @returns XML string */ public getXml(): string { return this.xml; } }