import type { PaymentTerminalTransactionSum } from './PaymentTerminalTransactionSum';
import type { PaymentTerminalDccTransactionSum } from './PaymentTerminalDccTransactionSum';
/**
 *
 * @export
 * @interface PaymentTerminalTransactionSummary
 */
export interface PaymentTerminalTransactionSummary {
    /**
     * The unique reference assigned to this transaction summary.
     * @type {number}
     * @memberof PaymentTerminalTransactionSummary
     */
    readonly reference?: number;
    /**
     * The ID of the space this object belongs to.
     * @type {number}
     * @memberof PaymentTerminalTransactionSummary
     */
    readonly linkedSpaceId?: number;
    /**
     * The total monetary amounts of all transactions, organized and grouped by brand and currency.
     * @type {Array<PaymentTerminalTransactionSum>}
     * @memberof PaymentTerminalTransactionSummary
     */
    readonly transactionSums?: Array<PaymentTerminalTransactionSum>;
    /**
     * Detailed breakdown of Dynamic Currency Conversion (DCC) transactions, showing transaction amounts in both original and converted currencies, grouped by payment brand.
     * @type {Array<PaymentTerminalDccTransactionSum>}
     * @memberof PaymentTerminalTransactionSummary
     */
    readonly dccTransactionSums?: Array<PaymentTerminalDccTransactionSum>;
    /**
     * The end of the time period covered by this summary report.
     * @type {Date}
     * @memberof PaymentTerminalTransactionSummary
     */
    readonly endedOn?: Date;
    /**
     * The overall transaction volume in each processed currency.
     * @type {{ [key: string]: number; }}
     * @memberof PaymentTerminalTransactionSummary
     */
    readonly balanceAmountPerCurrency?: {
        [key: string]: number;
    };
    /**
     * The payment terminal that processed the transactions included in this summary report.
     * @type {number}
     * @memberof PaymentTerminalTransactionSummary
     */
    readonly paymentTerminal?: number;
    /**
     * The HTML content of the transaction summary receipt.
     * @type {string}
     * @memberof PaymentTerminalTransactionSummary
     */
    readonly receipt?: string;
    /**
     * A unique identifier for the object.
     * @type {number}
     * @memberof PaymentTerminalTransactionSummary
     */
    readonly id?: number;
    /**
     * The total count of all transactions processed by the terminal during the summary period.
     * @type {number}
     * @memberof PaymentTerminalTransactionSummary
     */
    readonly numberOfTransactions?: number;
    /**
     * The beginning of the time period covered by this summary report.
     * @type {Date}
     * @memberof PaymentTerminalTransactionSummary
     */
    readonly startedOn?: Date;
    /**
     * The version is used for optimistic locking and incremented whenever the object is updated.
     * @type {number}
     * @memberof PaymentTerminalTransactionSummary
     */
    readonly version?: number;
}
/**
 * Check if a given object implements the PaymentTerminalTransactionSummary interface.
 */
export declare function instanceOfPaymentTerminalTransactionSummary(value: object): value is PaymentTerminalTransactionSummary;
export declare function PaymentTerminalTransactionSummaryFromJSON(json: any): PaymentTerminalTransactionSummary;
export declare function PaymentTerminalTransactionSummaryFromJSONTyped(json: any, ignoreDiscriminator: boolean): PaymentTerminalTransactionSummary;
export declare function PaymentTerminalTransactionSummaryToJSON(json: any): PaymentTerminalTransactionSummary;
export declare function PaymentTerminalTransactionSummaryToJSONTyped(value?: Omit<PaymentTerminalTransactionSummary, 'reference' | 'linkedSpaceId' | 'transactionSums' | 'dccTransactionSums' | 'endedOn' | 'balanceAmountPerCurrency' | 'paymentTerminal' | 'receipt' | 'id' | 'numberOfTransactions' | 'startedOn' | 'version'> | null, ignoreDiscriminator?: boolean): any;
