UNPKG

@fin.cx/skr

Version:

SKR03 and SKR04 German accounting standards for double-entry bookkeeping

100 lines (99 loc) 2.91 kB
import { Account } from './skr.classes.account.js'; import { Transaction } from './skr.classes.transaction.js'; import { JournalEntry } from './skr.classes.journalentry.js'; import type { IDatabaseConfig, TSKRType, IAccountData, IAccountFilter, ITransactionFilter, ITransactionData, IJournalEntry } from './skr.types.js'; export declare class ChartOfAccounts { private config?; private logger; private initialized; private skrType; constructor(config?: IDatabaseConfig); /** * Initialize the database connection */ init(): Promise<void>; /** * Initialize SKR03 chart of accounts */ initializeSKR03(): Promise<void>; /** * Initialize SKR04 chart of accounts */ initializeSKR04(): Promise<void>; /** * Get the current SKR type */ getSKRType(): TSKRType | null; /** * Set the active SKR type */ setSKRType(skrType: TSKRType): void; /** * Get account by number */ getAccountByNumber(accountNumber: string): Promise<Account | null>; /** * Get accounts by class */ getAccountsByClass(accountClass: number): Promise<Account[]>; /** * Get accounts by type */ getAccountsByType(accountType: IAccountData['accountType']): Promise<Account[]>; /** * Create a custom account */ createCustomAccount(accountData: Partial<IAccountData>): Promise<Account>; /** * Update an existing account */ updateAccount(accountNumber: string, updates: Partial<IAccountData>): Promise<Account>; /** * Delete a custom account (only non-system accounts) */ deleteAccount(accountNumber: string): Promise<void>; /** * Search accounts */ searchAccounts(searchTerm: string): Promise<Account[]>; /** * Get all accounts */ getAllAccounts(filter?: IAccountFilter): Promise<Account[]>; /** * Post a simple transaction */ postTransaction(transactionData: ITransactionData): Promise<Transaction>; /** * Post a journal entry */ postJournalEntry(journalData: IJournalEntry): Promise<JournalEntry>; /** * Get transactions for an account */ getAccountTransactions(accountNumber: string): Promise<Transaction[]>; /** * Get transactions by filter */ getTransactions(filter?: ITransactionFilter): Promise<Transaction[]>; /** * Reverse a transaction */ reverseTransaction(transactionId: string): Promise<Transaction>; /** * Get account class description */ getAccountClassDescription(accountClass: number): string; /** * Import accounts from CSV */ importAccountsFromCSV(csvContent: string): Promise<number>; /** * Export accounts to CSV */ exportAccountsToCSV(): Promise<string>; /** * Close the database connection */ close(): Promise<void>; }