import { AccountBase } from '../../entity/account/accountState'; import { RootState } from '../../rootStateTypes'; import { TransferEntryRouteReplacement } from './createTransferEntryState'; export declare function getCreateTransferEntryStatus(state: RootState): import("../..").FetchState; export declare function getLastTransferEntryReplacement(state: RootState): TransferEntryRouteReplacement | undefined; /** * Shared resolver for the credit/debit dropdowns in the transfer drawer. * * Resolution policy (intentional): * 1. Prefer the dedicated API fetch results (`transferEntryEligible` for the * debit pool, `creditCardOnlyEligible` for the credit-card-payment credit * pool). * 2. If the dedicated fetch returns an empty list while the COA is loaded, * fall back to the COA: the full account list for `transferEntryEligible`, * and COA accounts filtered to `credit_card` for `creditCardOnlyEligible`. * This keeps the dropdown populated for older tenants where the dedicated * endpoints haven't been backfilled yet. * * Intent — what this selector deliberately does NOT do: * - Does NOT distinguish "fetch in-flight" / "fetch errored" / "fetch returned * empty" — all three collapse to the COA fallback. The product preference * is "always show something selectable" over "show a spinner that may never * resolve". Loading/error UI belongs in the view layer; if you need a * spinner, observe the `fetchState` on `transferAccountsByType[kind]` * separately rather than changing the resolution policy here. * - Does NOT enforce "API result is authoritative even if empty" — a tenant * whose dedicated endpoint is correctly returning `[]` (e.g. no eligible * transfer destinations) will still see the COA. That trade-off is * accepted because the alternative blocks the user from picking anything; * the backend distinguishes "no result" from "endpoint not implemented" by * surfacing an error response, which the view layer handles separately. * * Memoized with reselect so consuming view-models don't recompute on every * unrelated state change. */ export declare const getResolvedTransferAccounts: (state: RootState) => { creditCardTransferAccountsList: AccountBase[]; transferAccountsList: AccountBase[]; };