import { Observable, OperatorFunction } from 'rxjs'; import { Middleware, Action } from 'redux'; declare class StateObservable extends Observable { value: S; private __notifier; constructor(input$: Observable, initialState: S); } declare interface Epic { (action$: Observable, state$: StateObservable, dependencies: Dependencies): Observable; } /** Merges all epics into a single one. */ declare function combineEpics(...epics: Epic[]): Epic; interface Options { dependencies?: D; } interface EpicMiddleware extends Middleware<{}, State> { run(rootEpic: Epic): void; } declare function createEpicMiddleware(options?: Options): EpicMiddleware; /** * Inferring the types of this is a bit challenging, and only works in newer * versions of TypeScript. * * @param ...types One or more Redux action types you want to filter for, variadic. */ declare function ofType>>(...types: [Type, ...Type[]]): OperatorFunction; declare const resetDeprecationsSeen: () => void; export { Epic, EpicMiddleware, StateObservable, resetDeprecationsSeen as __FOR_TESTING__resetDeprecationsSeen, combineEpics, createEpicMiddleware, ofType };