import { ActionsObservable, StateObservable } from 'redux-observable'; import { Observable } from 'rxjs'; import { updateTransactions } from '../../../../entity/transaction/transactionReducer'; import { RootState } from '../../../../rootStateTypes'; import { ZeniAPI } from '../../../../zeniAPI'; import { batchDetailFetchFailed, markBatchDetailRefreshAttempted, refreshBatchDetailsForBatchId, storeBatchDetails } from '../../reducers/missingReceiptsViewReducer'; export type ActionType = ReturnType | ReturnType | ReturnType | ReturnType | ReturnType; /** * Single-batch stale-while-revalidate refresh. Triggered by `pusherBatchStatusCompletionEpic` * (and any other path that wants to update one batch without wiping the cache). The response is * stored via `storeBatchDetails`, which replaces the entry by `batchId` so the row updates in * place — no skeleton, no list reflow. * * Throttle: `lastBatchDetailRefreshAtById[batchId]` is checked against `TARGETED_REFRESH_DEDUPE_MS` * before issuing the call. The marker is emitted first so concurrent dispatches (e.g. Pusher * resend during an in-flight request) see the dedupe timestamp and collapse to a single call. */ export declare const refreshBatchDetailsForBatchIdEpic: (actions$: ActionsObservable, state$: StateObservable, zeniAPI: ZeniAPI) => Observable;