import { AmountType, IncomeClassificationCategoryType, IncomeClassificationValueType } from './simple-types.model';
/**
 * Root element for submitting income classifications.
 * Χαρατηρισμοί Εσόδων Πρότυπων Παραστατικών ΑΑΔΕ
 */
export interface IncomeClassificationsDoc {
    /** Array of income classifications per invoice */
    incomeInvoiceClassification: InvoiceIncomeClassificationType[];
}
/**
 * Represents income classification data for a single invoice.
 */
export interface InvoiceIncomeClassificationType {
    /** Unique Invoice Registration Number (MARK) */
    invoiceMark: number;
    /** Unique Classification Registration Number. Filled by the service. */
    classificationMark?: number;
    /** VAT Number of the entity the classification refers to (used by representatives/accountants). */
    entityVatNumber?: string;
    /** Transaction Mode (1: Reject, 2: Deviation) OR detailed classifications. */
    transactionMode?: 1 | 2;
    /** Detailed income classifications per invoice line. */
    invoicesIncomeClassificationDetails?: InvoicesIncomeClassificationDetailType[];
}
/**
 * Represents income classification details for a specific line number within an invoice.
 */
export interface InvoicesIncomeClassificationDetailType {
    /** The line number of the original invoice this classification refers to. */
    lineNumber: number;
    /** List of income classifications for this specific line. */
    incomeClassificationDetailData: IncomeClassificationType[];
}
/**
 * Detailed income classification data.
 * This type is defined here as it's the core element of this specific schema.
 */
export interface IncomeClassificationType {
    /** Classification Code (E3 Code) */
    classificationType?: IncomeClassificationValueType;
    /** Classification Category */
    classificationCategory: IncomeClassificationCategoryType;
    /** Amount of the classification */
    amount: AmountType;
    /** Sequential ID for classifications within a line */
    id?: number;
}
