import { SEPAMandateType } from '../../enums/sepa-mandate-type.enum.js';
import { SEPAInformation } from '../../types/sepa-information.type.js';
import { SignatureInformation } from '../../types/signature-information.js';
import { PaymentInformationType } from '../../enums/payment-information-type.enum.js';
import { BusinessInformation } from '../../types/business-information.type.js';
import { PrivatePersonInformation } from '../../types/private-person-information.type.js';
import '../../types/address.type.js';
import '../../enums/country-code.enum.js';

declare class SEPAMandatePayment {
    readonly paymentType = PaymentInformationType.SEPA_MANDATE;
    /**
     * @inheritDoc
     */
    type: SEPAMandateType;
    /**
     * The unique identifier of the mandate.
     */
    mandateId: string;
    /**
     * When the money will be taken from the debitor.
     */
    dueDate: Date;
    /**
     * Signature data containing metadata about the signature.
     */
    signature?: SignatureInformation;
    /**
     * @inheritDoc
     */
    debitor: SEPAInformation & (BusinessInformation | PrivatePersonInformation);
    /**
     * @inheritDoc
     */
    creditor: {
        mandateReference: string;
    } & (BusinessInformation | PrivatePersonInformation);
}

export { SEPAMandatePayment };
