import { ObjectBase } from '@tomei/general';
import { PaymentType } from '../enum';
import { IPaymentParams } from './interfaces/payment-params.interface';
import { AccountSystemEntity } from '../account-system-entity/account-system-entity';
import { PaymentStatus } from '../enum/payment-status.enum';
import { PaymentRepository } from './payment.repository';
import { PaymentItemRepository } from '../payment-item/payment-item.repository';
import PaymentItem from '../payment-item/payment-item';
import PaymentPaidWith from '../payment-paid-with/payment-paid-with';
export default class Payment extends AccountSystemEntity {
    private _PaymentId;
    PaymentType: PaymentType;
    PaymentDate: Date;
    MethodTypeId: string;
    Description: string;
    Currency: string;
    Amount: number;
    Status: PaymentStatus;
    TransactionId: string;
    TransactionApprovalCode: string;
    TransactionAccountName: string;
    TransactionAccountNo: string;
    ReceivedBy: string;
    IssuedBy: string;
    UpdatedBy: string;
    UpdatedAt: Date;
    Remarks: string;
    RelatedObjectId: string;
    RelatedObjectType: string;
    ReceiptDocNo: string;
    protected _ObjectType: 'Payment';
    private static _RepositoryBase;
    private static _PaymentItemRepository;
    private static _PaymentPaidWithRepository;
    private _DbTransaction;
    private _PaymentItems;
    private _PaymentPaidWith;
    paymentItemRepository: PaymentItemRepository;
    get PaymentId(): string;
    get ObjectType(): "Payment";
    set PaymentId(id: string);
    get RepositoryBase(): PaymentRepository;
    get ObjectId(): string;
    get ObjectName(): string;
    get TableName(): string;
    constructor(dbTransaction?: any, paymentId?: string);
    static initPayment(dbTransaction: any, paymentId: string): Promise<Payment>;
    getPaymentItems(dbTransaction?: any): Promise<PaymentItem[]>;
    getPaymentPaidWith(dbTransaction?: any): Promise<PaymentPaidWith[]>;
    newPaymentItem(objectBeingPaidFor: ObjectBase): PaymentItem;
    newPaymentPaidWith(paymentMethodTypeId: string): PaymentPaidWith;
    init(Params: IPaymentParams): void;
}
//# sourceMappingURL=payment.d.ts.map