import { Action } from 'redux'; import { AsyncAction, AsyncFulfilledAction } from './redux-thunk-promise'; import { ApiResult } from 'api/...'; export const FETCH = '.../FETCH'; export const FETCH_PENDING = '.../FETCH_PENDING'; export const FETCH_FULFILLED = '.../FETCH_FULFILLED'; export const FETCH_REJECTED = '.../FETCH_REJECTED'; export type FetchAction = AsyncAction; export type FetchPendingAction = Action; export type FetchDoneAction = Action & { payload: ApiResult; }; export type FetchFailAction = Action & { payload: Error; error: true; }; export type FooAction = | FetchAction | FetchPendingAction | FetchDoneAction | FetchFailAction;