import { AmountType, PaymentMethod } from './simple-types.model';
import { ProviderSignatureType, ECRTokenType } from './invoice.model';
/**
 * Root element for submitting payment methods.
 * Μέθοδοι Πληρωμής
 */
export interface PaymentMethodsDoc {
    /**
     * Array of payment method information per invoice.
     * NOTE: XSD uses <paymentMethods> element with type PaymentMethodType,
     * but ERP doc diagram (4.2.4) shows <payment> element. Using 'payment' based on diagram.
     */
    payment: PaymentMethodType[];
}
/**
 * Represents payment method information associated with a single invoice.
 */
export interface PaymentMethodType {
    /** Unique Invoice Registration Number (MARK) */
    invoiceMark: number;
    /** Unique Payment Method Registration Number. Filled by the service. */
    paymentMethodMark?: number;
    /** VAT Number of the entity the payment refers to (used by providers/representatives). */
    entityVatNumber?: string;
    /** List of payment method details for the invoice. */
    paymentMethodDetails: PaymentMethodDetailType[];
}
/**
 * Detailed information about a single payment method used for an invoice.
 * This type is defined here as it's the core element of this specific schema.
 */
export interface PaymentMethodDetailType {
    /** Payment Type */
    type: PaymentMethod;
    /** Payment Amount */
    amount: AmountType;
    /** Additional information (e.g., Bank Account No.) */
    paymentMethodInfo?: string;
    /** Tip amount */
    tipAmount?: AmountType;
    /** Transaction Identifier (e.g., POS transaction ID) */
    transactionId?: string;
    /** POS Terminal Identifier (tid) */
    tid?: string;
    /** Provider Payment Signature (for provider channel) */
    ProvidersSignature?: ProviderSignatureType;
    /** Fiscal Device Payment Signature (for ERP channel) */
    ECRToken?: ECRTokenType;
}
