import { AccountsViewParentID } from '../../commonStateTypes/accountView/nestedAccountID'; import { ClassesViewParentID } from '../../commonStateTypes/classesView/nestedClassID'; import { AdditionalBalancesOptions } from '../../commonStateTypes/coaBalance/additionalBalances/getAdditionalBalances'; import { COABalancesFilter } from '../../commonStateTypes/coaBalance/coaBalancesFilter'; import { ID } from '../../commonStateTypes/common'; import { ProjectsViewParentID } from '../../commonStateTypes/projectView/projectViewParentID'; import { EntityOrder } from '../../commonStateTypes/selectorTypes/entityOrder'; import { ReportIDPlusForecastID } from '../../commonStateTypes/viewAndReport/viewAndReport'; import { Account, AccountBase, AccountState, AccountType } from './accountState'; export declare const getAccountBase: (accountState: AccountState, accountId: ID, reportId: ReportIDPlusForecastID) => AccountBase | undefined; /** * Transfer-account IDs from the API are resolved under `transfer_accounts`; if that * slice is not hydrated yet, fall back to `account_list` so dropdowns still populate. */ export declare const getAccountBaseForTransferAccounts: (accountState: AccountState, accountId: ID) => AccountBase | undefined; /** * Credit-card-only pool from the transfer-flow accounts API; falls back to `account_list`. */ export declare const getAccountBaseForCreditCardTransferAccounts: (accountState: AccountState, accountId: ID) => AccountBase | undefined; export declare function getAccount(accountState: AccountState, id: { accountId: ID; reportId: ReportIDPlusForecastID; accountsViewParentId?: AccountsViewParentID; classesViewParentId?: ClassesViewParentID; projectsViewParentId?: ProjectsViewParentID; }, filter: COABalancesFilter, additionalBalancesOptions?: AdditionalBalancesOptions): { filter: COABalancesFilter; balancesInTimeframe: import("../../commonStateTypes/coaBalance/coaBalancesFilter").COABalancesSlice; expensesInTimeframe: import("../../commonStateTypes/coaBalance/coaBalancesFilter").COABalancesSlice; incomeInTimeframe: import("../../commonStateTypes/coaBalance/coaBalancesFilter").COABalancesSlice; cogsInTimeframe: import("../../commonStateTypes/coaBalance/coaBalancesFilter").COABalancesSlice; cashPositionInTimeframe: import("../../commonStateTypes/coaBalance/coaBalancesFilter").COABalancesSlice; cashInInTimeframe: import("../../commonStateTypes/coaBalance/coaBalancesFilter").COABalancesSlice; cashOutInTimeframe: import("../../commonStateTypes/coaBalance/coaBalancesFilter").COABalancesSlice; otherIncomeInTimeframe: import("../../commonStateTypes/coaBalance/coaBalancesFilter").COABalancesSlice; otherExpensesInTimeframe: import("../../commonStateTypes/coaBalance/coaBalancesFilter").COABalancesSlice; equityInTimeframe: import("../../commonStateTypes/coaBalance/coaBalancesFilter").COABalancesSlice; assetsInTimeframe: import("../../commonStateTypes/coaBalance/coaBalancesFilter").COABalancesSlice; liabilitiesInTimeframe: import("../../commonStateTypes/coaBalance/coaBalancesFilter").COABalancesSlice; operatingActivitiesInTimeframe: import("../../commonStateTypes/coaBalance/coaBalancesFilter").COABalancesSlice; investingActivitiesInTimeframe: import("../../commonStateTypes/coaBalance/coaBalancesFilter").COABalancesSlice; financingActivitiesInTimeframe: import("../../commonStateTypes/coaBalance/coaBalancesFilter").COABalancesSlice; accountId: string; accountName: string; accountType: "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" | undefined; accountSubType: string | undefined; accountDescription: string; last4Digits: string | undefined; logo: import("url-parse")> | import("url-parse") | undefined; status: import("../..").Status | undefined; balance: import("../..").Balance | undefined; statementCloseDay: import("./accountState").StatementCloseDay | undefined; qboId: string | undefined; coaId: string | undefined; classesViewParentId: ClassesViewParentID | undefined; projectsViewParentId: ProjectsViewParentID | undefined; accountsViewParentId: AccountsViewParentID | undefined; labels: ("prepaid_expenses" | "fixed_assets" | "uncategorized_income" | "uncategorized_expense" | "bank_charges_and_fees" | "travel_transportation" | "accrued_expenses")[]; isBillEditableCoaAccountType: boolean; isDeleted: boolean; }; export declare function getAccountWithBalance(accountState: AccountState, id: { accountId: ID; reportId: ReportIDPlusForecastID; accountsViewParentId?: AccountsViewParentID; classesViewParentId?: ClassesViewParentID; projectsViewParentId?: ProjectsViewParentID; }): { accountId: string; accountName: string; accountType: "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" | undefined; accountSubType: string | undefined; accountDescription: string; last4Digits: string | undefined; logo: import("url-parse")> | import("url-parse") | undefined; status: import("../..").Status | undefined; balance: import("../..").Balance | undefined; statementCloseDay: import("./accountState").StatementCloseDay | undefined; qboId: string | undefined; coaId: string | undefined; classesViewParentId: ClassesViewParentID | undefined; projectsViewParentId: ProjectsViewParentID | undefined; accountsViewParentId: AccountsViewParentID | undefined; labels: ("prepaid_expenses" | "fixed_assets" | "uncategorized_income" | "uncategorized_expense" | "bank_charges_and_fees" | "travel_transportation" | "accrued_expenses")[]; isBillEditableCoaAccountType: boolean; isDeleted: boolean; }; export type AccountReport = ReturnType; export type AccountWithBalanceReport = ReturnType; export declare const getAccountsOrdered: (filter: COABalancesFilter, accountState: AccountState, id: { accountIDs: ID[]; reportId: ReportIDPlusForecastID; accountsViewParentId?: AccountsViewParentID; classesViewParentId?: ClassesViewParentID; projectsViewParentId?: ProjectsViewParentID; }, orderBy: "balance" | "expenses" | "income" | "cogs" | "cashPosition" | "cashIn" | "cashOut" | "otherIncome" | "otherExpenses" | "equity" | "assets" | "liabilities" | "operating_activities" | "investing_activities" | "financing_activities", order?: EntityOrder) => { filter: COABalancesFilter; balancesInTimeframe: import("../../commonStateTypes/coaBalance/coaBalancesFilter").COABalancesSlice; expensesInTimeframe: import("../../commonStateTypes/coaBalance/coaBalancesFilter").COABalancesSlice; incomeInTimeframe: import("../../commonStateTypes/coaBalance/coaBalancesFilter").COABalancesSlice; cogsInTimeframe: import("../../commonStateTypes/coaBalance/coaBalancesFilter").COABalancesSlice; cashPositionInTimeframe: import("../../commonStateTypes/coaBalance/coaBalancesFilter").COABalancesSlice; cashInInTimeframe: import("../../commonStateTypes/coaBalance/coaBalancesFilter").COABalancesSlice; cashOutInTimeframe: import("../../commonStateTypes/coaBalance/coaBalancesFilter").COABalancesSlice; otherIncomeInTimeframe: import("../../commonStateTypes/coaBalance/coaBalancesFilter").COABalancesSlice; otherExpensesInTimeframe: import("../../commonStateTypes/coaBalance/coaBalancesFilter").COABalancesSlice; equityInTimeframe: import("../../commonStateTypes/coaBalance/coaBalancesFilter").COABalancesSlice; assetsInTimeframe: import("../../commonStateTypes/coaBalance/coaBalancesFilter").COABalancesSlice; liabilitiesInTimeframe: import("../../commonStateTypes/coaBalance/coaBalancesFilter").COABalancesSlice; operatingActivitiesInTimeframe: import("../../commonStateTypes/coaBalance/coaBalancesFilter").COABalancesSlice; investingActivitiesInTimeframe: import("../../commonStateTypes/coaBalance/coaBalancesFilter").COABalancesSlice; financingActivitiesInTimeframe: import("../../commonStateTypes/coaBalance/coaBalancesFilter").COABalancesSlice; accountId: string; accountName: string; accountType: "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" | undefined; accountSubType: string | undefined; accountDescription: string; last4Digits: string | undefined; logo: import("url-parse")> | import("url-parse") | undefined; status: import("../..").Status | undefined; balance: import("../..").Balance | undefined; statementCloseDay: import("./accountState").StatementCloseDay | undefined; qboId: string | undefined; coaId: string | undefined; classesViewParentId: ClassesViewParentID | undefined; projectsViewParentId: ProjectsViewParentID | undefined; accountsViewParentId: AccountsViewParentID | undefined; labels: ("prepaid_expenses" | "fixed_assets" | "uncategorized_income" | "uncategorized_expense" | "bank_charges_and_fees" | "travel_transportation" | "accrued_expenses")[]; isBillEditableCoaAccountType: boolean; isDeleted: boolean; }[]; export declare const getAccountsByType: (accountState: AccountState, accountTypes: AccountType[]) => Partial>; export declare const getAccountIdsForTypes: (accountState: AccountState, accountTypes: AccountType[]) => ID[]; export declare const getAccountIdsForLabels: (accountState: AccountState, labels: string[]) => ID[]; /** * Returns all accounts currently in state (single pass over accountsByKey). * Use for dropdowns that need account names and types; map to * { accountId, accountName, accountType } as needed. */ export declare const getAllAccounts: (accountState: AccountState) => Account[]; export interface AccountFilterOption { accountId: ID; accountName: string; accountType: AccountType; } /** * Partitions accounts for transaction filter dropdowns: bank/credit_card → paymentAccountNames, * all other account types → categoryOptions. Use for payment_account_name and category filter options. * * Memoised via `createSelector` so the composite `{categoryOptions, * paymentAccountNames}` keeps a stable identity across Redux dispatches that * don't change account data. Without this, every consumer using * `useSelector(state => getTransactionFilterAccountOptions(state.accountState))` * would re-render on every dispatch (the inline call returns a fresh outer * object each time, defeating reference equality). */ export declare const getTransactionFilterAccountOptions: (accountState: AccountState) => { categoryOptions: AccountFilterOption[]; paymentAccountNames: AccountFilterOption[]; };