import { Common } from "./common.namespace";
/**
 * Reconciliation
 * @description Namespace for Reconciliation
 */
export declare namespace Reconciliation {
    /**
     * Enums
     * @description Namespace for Enums
     */
    namespace Enums {
        /**
         * Reconciliation type
         * @description Enum for Reconciliation type
         */
        enum ReconciliationType {
            AcquirerSynchronisation = "AcquirerSynchronisation",
            SaleReconciliation = "SaleReconciliation"
        }
        /**
         * Transaction type
         * @description Enum for Transaction type
         */
        enum TransactionType {
            Credit = "Credit",
            Debit = "Debit"
        }
    }
    /**
     * Interfaces
     * @description Namespace for Interfaces
     */
    namespace Interfaces {
        /**
         * Request
         * @description Interface for Request
         */
        interface IRequest extends Common.Interfaces.ISaleToPOIRequest {
            ReconciliationRequest?: IReconciliationRequest;
        }
        /**
         * Response
         * @description Interface for Response
         */
        interface IResponse extends Common.Interfaces.ISaleToPOIResponse {
            ReconciliationResponse?: IReconciliationResponse;
        }
        /**
         * Reconciliation request
         * @description Interface for Reconciliation request
         */
        interface IReconciliationRequest {
            ReconciliationType?: Enums.ReconciliationType;
            ProprietaryTags?: Common.Interfaces.IProprietaryTags;
        }
        /**
         * Reconciliation response
         * @description Interface for Reconciliation response
         */
        interface IReconciliationResponse {
            POIReconciliationID?: number;
            ReconciliationType?: Enums.ReconciliationType;
            ProprietaryTags?: Common.Interfaces.IProprietaryTags;
            TransactionTotals?: ITransactionTotal[];
            Response?: Common.Interfaces.IResponse;
        }
        /**
         * Transaction total
         * @description Interface for Transaction total
         */
        interface ITransactionTotal {
            PaymentCurrency?: string;
            PaymentTotals?: IPaymentTotal[];
        }
        /**
         * Payment total
         * @description Interface for Payment total
         */
        interface IPaymentTotal {
            TransactionAmount?: number;
            TransactionCount?: number;
            TransactionType?: Enums.TransactionType;
        }
    }
}
