import React, { Component } from 'react'; import { EnhancedStore, LiftedState, LiftedStore, Options, InstrumentExt } from '@redux-devtools/instrument'; import { Action, StoreEnhancer } from 'redux'; export interface Props, MonitorState> { store?: EnhancedStore; } export type Monitor, MonitorProps extends LiftedState, MonitorState, MonitorAction extends Action> = React.ReactElement> & { update(monitorProps: MonitorProps, state: MonitorState | undefined, action: MonitorAction): MonitorState; }>; export interface DevToolsInstance, MonitorState> extends Component> { liftedStore?: LiftedStore; } export interface DevToolsClass, MonitorState, MonitorAction extends Action> { new (props: Props): DevToolsInstance; instrument: (options?: Options) => StoreEnhancer>; } export default function createDevTools, MonitorProps extends LiftedState, MonitorState, MonitorAction extends Action>(children: Monitor): DevToolsClass;