import { AccountsViewParentID } from '../../commonStateTypes/accountView/nestedAccountID'; import { Balance } from '../../commonStateTypes/balance'; import { ClassesViewParentID } from '../../commonStateTypes/classesView/nestedClassID'; import { COABalanceGrouped, COABalanceGroupedByPeriod } from '../../commonStateTypes/coaBalance/coaBalance'; import { ID } from '../../commonStateTypes/common'; import { ProjectsViewParentID } from '../../commonStateTypes/projectView/projectViewParentID'; import { RecommendationBase } from '../../commonStateTypes/recommendationBaseCore'; import { Status } from '../../commonStateTypes/status'; import { ReportIDPlusForecastID } from '../../commonStateTypes/viewAndReport/viewAndReport'; import { ZeniUrl } from '../../zeniUrl'; export declare const ALL_ACCOUNT_TYPES: readonly ["bank", "credit_card", "expenses", "cogs", "income", "cash_in", "cash_out", "cash_position", "other_income", "other_expense", "accounts_receivable", "other_current_assets", "fixed_assets", "other_assets", "accounts_payable", "other_current_liabilities", "long_term_liabilities", "equity", "current_liabilities", "current_assets"]; export declare const toAccountType: (v: string) => "cash_position" | "fixed_assets" | "bank" | "credit_card" | "expenses" | "cogs" | "income" | "cash_in" | "cash_out" | "other_income" | "other_expense" | "accounts_receivable" | "other_current_assets" | "other_assets" | "accounts_payable" | "other_current_liabilities" | "long_term_liabilities" | "equity" | "current_liabilities" | "current_assets"; export type AccountType = ReturnType; export declare const toAccountTypeStrict: (v: string | null | undefined) => AccountType | undefined; /** Account types used for payment-account filters (e.g. transaction filter "payment account name"). */ export declare const PAYMENT_ACCOUNT_TYPES: readonly ["bank", "credit_card"]; export type PaymentAccountType = (typeof PAYMENT_ACCOUNT_TYPES)[number]; export declare function isPaymentAccountType(accountType: AccountType | undefined): accountType is PaymentAccountType; export type UncategorizedAccountTypes = 'expense' | 'income'; declare const toAccountLabel: (v: string) => "prepaid_expenses" | "fixed_assets" | "uncategorized_income" | "uncategorized_expense" | "bank_charges_and_fees" | "travel_transportation" | "accrued_expenses"; export type AccountLabel = ReturnType; export declare const toAccountLabelStrict: (v: string | null | undefined) => AccountLabel | undefined; export declare function getAccountKey(reportIdUniqueKey: ReportIDPlusForecastID, accountId: ID, classesViewParentId?: ClassesViewParentID, accountsViewParentId?: AccountsViewParentID, projectsViewParentId?: ProjectsViewParentID): string; export type AccountKey = ReturnType; export declare const toReconciliationAccountSource: (v: string) => "plaid" | "bank_statement"; export type ReconciliationAccountSourceType = ReturnType; export declare const toReconciliationAccountSourceStrict: (v: string | null | undefined) => ReconciliationAccountSourceType | undefined; export interface AccountState { accountsByKey: Record; } export type StatementCloseDay = number | 'LAST_DAY_OF_THE_MONTH'; export interface Tax1099Config { boxType: string | null; expenseType1099: string | null; isBankAccount: boolean; isExpenseAccount: boolean; type1099: string | null; } export interface AccountBase { accountDescription: string; accountId: ID; accountName: string; labels: AccountLabel[]; accountSubType?: string; accountType?: AccountType; coaId?: ID; isBillEditableCoaAccountType?: boolean; isDeleted?: boolean; isPreFilled?: boolean; last4Digits?: string; logo?: ZeniUrl; paymentType?: string; paymentTypeName?: string; qboId?: ID; reconciliationSource?: ReconciliationAccountSourceType; tax1099Config?: Tax1099Config; } export interface RecommendedAccountBase extends AccountBase, RecommendationBase { accountNameConfidence?: number; } export interface RecommendedAccountBaseWithCOT extends RecommendedAccountBase { cot: string[]; reasoning: string; } export interface Account extends AccountBase { key: AccountKey; accountsViewParentId?: AccountsViewParentID; assets?: COABalanceGrouped; balance?: Balance; balancesByPeriod?: COABalanceGroupedByPeriod; cashIn?: COABalanceGrouped; cashOut?: COABalanceGrouped; cashPosition?: COABalanceGrouped; classesViewParentId?: ClassesViewParentID; cogs?: COABalanceGrouped; equity?: COABalanceGrouped; expenses?: COABalanceGrouped; financingActivities?: COABalanceGrouped; income?: COABalanceGrouped; investingActivities?: COABalanceGrouped; liabilities?: COABalanceGrouped; operatingActivities?: COABalanceGrouped; otherExpenses?: COABalanceGrouped; otherIncome?: COABalanceGrouped; projectsViewParentId?: ProjectsViewParentID; statementCloseDay?: StatementCloseDay; status?: Status; } export interface AccountMetadata extends AccountBase { isSubAccount: boolean; parentAccountId: ID | undefined; } export {};