import { Mozaic } from "../..";
import { Amount, Payment as RawPayment } from "../../api";
import { BaseResource } from "../BaseResource";
import { PaymentCycle } from "../PaymentCycles/PaymentCycle";
import { PaymentCycleEntry } from "../PaymentCycles/PaymentCycleEntry";
export declare class Payment extends BaseResource {
    private _mozaic;
    /**
     * The ID of the payment. This can be used to retrieve a payment.
     */
    id: string;
    /**
     * The recipient's email address. This is the email address at the time the payment was sent.
     * If the email address has changed, this will be the old email address.
     */
    email: string;
    /**
     * The status of the payment. Refer to the API documentation for a list of possible statuses.
     */
    status: string;
    /**
     * The amount of the payment
     */
    amount: Amount;
    /**
     * If the payment was sent from a payment cycle, then this is the ID of the payment cycle. Otherwise, it will be null.
     */
    paymentCycleId: string | undefined | null;
    /**
     * If the payment was sent from a payment cycle, then this is the ID of the payment cycle entry. Otherwise, it will be null.
     */
    paymentCycleEntryId: string | undefined | null;
    /**
     * An optional free text field containing user supplied information about the payment.
     * This field has a maximum length of 140 characters.
     */
    memo: string | null | undefined;
    /**
     * The raw ContactInfo object that was returned from the API
     */
    rawObject: RawPayment;
    /**
     * @internal
     * Internal use only. Please use the Mozaic object to utilize this object.
     */
    constructor(mozaic: Mozaic, payment: RawPayment);
    /**
     * Returns the payment cycle entry that this payment was sent from. If the payment was not sent from a payment cycle, then this will be null.
     * @returns {PaymentCycleEntry | null}
     */
    getPaymentCycleEntry(): Promise<PaymentCycleEntry | null>;
    /**
     * Returns the payment cycle that this payment was sent from. If the payment was not sent from a payment cycle, then this will be null.
     * @returns {PaymentCycle | null}
     */
    getPaymentCycle(): Promise<PaymentCycle | null>;
}
//# sourceMappingURL=Payment.d.ts.map