import type { TInvoice } from '../../interfaces/common.js';

/**
 * Base encoder class that defines common encoding functionality
 * for all invoice format encoders
 */
export abstract class BaseEncoder {
  /**
   * Encodes a TInvoice object into XML
   * @param invoice TInvoice object to encode
   * @returns XML string
   */
  abstract encode(invoice: TInvoice): Promise<string>;
}