import { IJournalEntryAttr } from './interfaces/journal-entry-attr.interface';
import { TransactionTypeOptions } from '../enum';
import JournalEntryModel from '../models/journal-entry.entity';
import { AccountSystemEntity } from '../account-system-entity/account-system-entity';
import LedgerTransaction from '../ledger-transaction/ledger-transaction';
import { JournalEntryRepository } from './journal-entry.repository';
export default class JournalEntry extends AccountSystemEntity {
    private _JournalEntryId;
    Date: Date;
    Name: string;
    Description: string;
    protected _ObjectType: 'JournalEntry';
    private static _RepositoryBase;
    private static _LedgerTransactionRepository;
    private _DbTransaction;
    private _DebitTransactions;
    private _CreditTransactions;
    get JournalEntryId(): string;
    private set JournalEntryId(value);
    get ObjectType(): "JournalEntry";
    get RepositoryBase(): JournalEntryRepository;
    get TableName(): string;
    get ObjectName(): string;
    get ObjectId(): string;
    constructor(dbTransaction?: any, journalEntryId?: string);
    static initJournalEntry(dbTransaction?: any, journalEntryId?: string): Promise<JournalEntry>;
    get DebitTransactions(): Promise<LedgerTransaction[]>;
    get CreditTransactions(): Promise<LedgerTransaction[]>;
    init(params: IJournalEntryAttr): void;
    getData(): {
        JournalEntryId: string;
        Date: Date;
        Name: string;
        Description: string;
        PostedById: string;
        PostedToAccSystemYN: string;
        PostedDateTime: Date;
    };
    create(dbTransaction?: any): Promise<JournalEntryModel>;
    save(userId: string, dbTransaction?: any): Promise<JournalEntryModel>;
    newLedgerTransaction(transactionType: TransactionTypeOptions): Promise<LedgerTransaction>;
}
//# sourceMappingURL=journal-entry.d.ts.map