import { AdapterState, AdapterEnhancer, SubscribeFunction } from '../types/AdapterTypes'; import createApplyMiddleware, { Middleware } from './internals/createApplyMiddleware'; type SubscribeMiddleware = Middleware< TActivity, TAdapterState, SubscribeFunction >; export default function applySubscribeMiddleware( ...middlewares: SubscribeMiddleware[] ): AdapterEnhancer { return createApplyMiddleware>( (api) => api.subscribe, (api, fn) => ({ ...api, subscribe: fn }) )(...middlewares); } export type { SubscribeMiddleware };