diff --git a/packages/redux-devtools/src/createDevTools.tsx b/packages/redux-devtools/src/createDevTools.tsx index ef9f288f..80e6d985 100644 --- a/packages/redux-devtools/src/createDevTools.tsx +++ b/packages/redux-devtools/src/createDevTools.tsx @@ -6,8 +6,9 @@ import { LiftedState, LiftedStore, Options, + InstrumentExt, } from '@redux-devtools/instrument'; -import { Action } from 'redux'; +import { Action, StoreEnhancer } from 'redux'; function logError(type: string) { if (type === 'NoStore') { @@ -46,13 +47,32 @@ export type Monitor< } >; +export interface DevToolsInstance, MonitorState> + extends Component> { + liftedStore?: LiftedStore; +} + +export interface DevToolsClass< + S, + A extends Action, + MonitorState, + MonitorAction extends Action, +> { + new (props: Props): DevToolsInstance; + instrument: ( + options?: Options, + ) => StoreEnhancer>; +} + export default function createDevTools< S, A extends Action, MonitorProps extends LiftedState, MonitorState, MonitorAction extends Action, ->(children: Monitor) { +>( + children: Monitor, +): DevToolsClass { const monitorElement = Children.only(children); const monitorProps = monitorElement.props; const Monitor = monitorElement.type;