import type { OperatorFunction } from 'rxjs'; import type { Action, ActionName, ActionWithPayload } from '../types/Action'; export { VoidPayload } from '../types/Action'; /** * Helper type for any action * * This type has payload as an optional, unknown field, and is useful if you * want to extract a possible `payload` from an action you don't know anything * about. */ export type UnknownAction = Action; export interface ActionCreatorCommon { readonly type: ActionName; } /** * Helper type for action creator where only the returned action matters * * This type allows for inferring overlap of the payload type between multiple * action creators with different payloads. */ export interface UnknownActionCreatorWithPayload extends ActionCreatorCommon { (payload?: any): ActionWithPayload; } /** * Helper type for action creator where you need to handle both action creators * with and without payloads * * This type has payload as an optional argument to the action creator function * and has return type `UnknownAction`. It's useful when you need to define a * generic action creator that might create actions with or without actions. */ export interface UnknownActionCreator extends ActionCreatorCommon { (payload?: any): UnknownAction; } export type Routine = OperatorFunction; export interface RoutineFunc { /** * See collectRoutines for documentation */ (fn1: Routine): Routine; /** * See collectRoutines for documentation */ (fn1: Routine, fn2: OperatorFunction): Routine; /** * See collectRoutines for documentation */ (fn1: Routine, fn2: OperatorFunction, fn3: OperatorFunction): Routine; /** * See collectRoutines for documentation */ (fn1: Routine, fn2: OperatorFunction, fn3: OperatorFunction, fn4: OperatorFunction): Routine; /** * See collectRoutines for documentation */ (fn1: Routine, fn2: OperatorFunction, fn3: OperatorFunction, fn4: OperatorFunction, fn5: OperatorFunction): Routine; /** * See collectRoutines for documentation */ (fn1: Routine, fn2: OperatorFunction, fn3: OperatorFunction, fn4: OperatorFunction, fn5: OperatorFunction, fn6: OperatorFunction): Routine; /** * See collectRoutines for documentation */ (fn1: Routine, fn2: OperatorFunction, fn3: OperatorFunction, fn4: OperatorFunction, fn5: OperatorFunction, fn6: OperatorFunction, fn7: OperatorFunction): Routine; /** * See collectRoutines for documentation */ (fn1: Routine, fn2: OperatorFunction, fn3: OperatorFunction, fn4: OperatorFunction, fn5: OperatorFunction, fn6: OperatorFunction, fn7: OperatorFunction, fn8: OperatorFunction): Routine; /** * See collectRoutines for documentation */ (fn1: Routine, fn2: OperatorFunction, fn3: OperatorFunction, fn4: OperatorFunction, fn5: OperatorFunction, fn6: OperatorFunction, fn7: OperatorFunction, fn8: OperatorFunction, fn9: OperatorFunction): Routine; /** * See collectRoutines for documentation */ (fn1: Routine, fn2: OperatorFunction, fn3: OperatorFunction, fn4: OperatorFunction, fn5: OperatorFunction, fn6: OperatorFunction, fn7: OperatorFunction, fn8: OperatorFunction, fn9: OperatorFunction, fn10: OperatorFunction): Routine; /** * See collectRoutines for documentation */ (fn1: Routine, fn2: OperatorFunction, fn3: OperatorFunction, fn4: OperatorFunction, fn5: OperatorFunction, fn6: OperatorFunction, fn7: OperatorFunction, fn8: OperatorFunction, fn9: OperatorFunction, fn10: OperatorFunction, ...fns: OperatorFunction[]): Routine; }