import { ActionBlockProps } from '../../mappings/blocks'; /** The key this block layers onto the drawer's action context when its open-time load fails. */ export interface RecurringTransactionActionContext { recurringLoadFailed?: boolean; } /** * Runs the recurring widget's loader and records whether it left the store loaded. * * `RecurringTransactionsStore` swallows API failures into `captureError`, so on a failed request * `isDataLoaded` simply stays false and nothing else changes. Left alone, that would keep the block * on its loader forever. This is the one place that turns the outcome into a flag the block can * render an error state (with retry) from. The flag lives on the drawer's action context, which is * per drawer session: a new open starts clean. */ export declare const useRecurringTransactionLoad: () => () => Promise; /** * Open-time data guarantee for the Expense Details drawer. Wired as the block's `usePrepare`, so * `ActionBlockLayer` runs it once each time a CTA opens the drawer. * * A beat is rendered in the feed long before the recurring module has loaded, so the store is * usually cold at open time. The loader is the recurring widget's own (accounts, categories and * transactions first, then repeating transactions). Guarded on `isDataLoaded` so re-opening does * not refetch, and on a ref so a failed load does not refire on every render (retry is explicit). */ export declare const useRecurringTransactionPrepare: (_props: ActionBlockProps) => void;