import { BeatApi, TransactionApi } from '../api'; import { Beat, Tag, Tagging, Transaction, TransactionRule } from '../types'; import { GlobalStore } from './GlobalStore'; export type TransactionFilter = { accounts?: string[]; dateRange?: { start: Date; end: Date; }; custom?: (value: Transaction) => boolean; searchTerm?: string; showSplits?: boolean; }; export declare class TransactionStore { globalStore: GlobalStore; uiStore: UiStore; api: TransactionApi; beatApi: BeatApi; associatedBeats: Beat[]; associatedBeatsLoaded: boolean; associatedBeatsLoading: boolean; transactions: Transaction[]; transactionsLoaded: boolean; transactionsLoading: boolean; taggings: Tagging[]; taggingsLoaded: boolean; taggingsLoading: boolean; tags: Tag[]; tagsLoaded: boolean; tagsLoading: boolean; transactionRules: TransactionRule[]; transactionRulesLoaded: boolean; transactionRulesLoading: boolean; transactionSplitting: boolean; cachedStartDate: Date; filter: TransactionFilter; isLoading: boolean; alert: string; sortColumn: string; sortDirection: string; constructor(globalStore: GlobalStore); loadTransactionData: () => Promise; get isTransactionDataLoaded(): boolean; get detailedTransactions(): Transaction[]; get sortedTransactions(): Transaction[]; get sortedTransactionsWithSplits(): Transaction[]; setAssociatedBeats: (beats: Beat[]) => void; setTaggings: (taggings: Tagging[]) => void; setTags: (tags: Tag[]) => void; setTransactionRules: (transactionRules: TransactionRule[]) => void; setTransactions: (transactions: Transaction[]) => void; setAlert: (alert: string) => void; addTag: (name: string) => Promise; addTagging: (tagGuid: string, transactionGuid: string) => Promise; addOrUpdateTransactionRule: (categoryGuid: string, transaction: Transaction) => Promise; addTransaction: (transaction: Transaction) => Promise; loadAssociatedBeats: (fromDate?: Date) => Promise; loadTags: () => Promise; loadTaggings: () => Promise; loadTransactionRules: () => Promise; loadTransactions: (startDate?: Date) => Promise; modifyTransactionByAccountGuid: (guid: string, updates: Partial) => void; removeTag: (tagGuid: string) => Promise; removeTagging: (taggingGuid: string) => Promise; removeTransaction: (transactionGuid: string) => Promise; setFilter: (filter: TransactionFilter) => void; setIsLoading: (isLoading: boolean) => boolean; splitTransaction: (transaction: Transaction, splits: Transaction[]) => Promise; unSplitTransaction: (guid: string) => Promise; updateTaggings: (tagGuids: string[], transactionGuid: string) => Promise; updateTag: (tag: Tag) => Promise; updateTransaction: (transaction: Transaction) => Promise; loadEmbeddedInstanceTransactions: (fromDate: Date) => Promise; } export declare class UiStore { beginDate: Date; endDate: Date; expandedSplits: string[]; height: number; width: number; shouldDisableDrawerScroll: boolean; searchValue: string; selectedAccountGuids: string[]; manualTransaction: Transaction; isAmountValid: boolean; showInsights: boolean; constructor(); setDateRange: (beginDate: Date, endDate: Date) => void; setIsAmountValid: (valid: boolean) => boolean; setSearchValue: (searchValue: string) => string; setSelectedAccountGuids: (accountGuids: string[]) => string[]; setShouldDisableDrawerScroll: (shouldDisable: boolean) => boolean; setShowInsights: (showInsights: boolean) => void; setSize: (height: number, width: number) => void; toggleSplit: (guid: string) => void; clearExpandedSplits: () => void; updateManualTransaction: (manualTransaction: Transaction) => void; }