import React, { Component } from 'react';
import { LiftedAction, LiftedState } from '@redux-devtools/core';
import { Action } from 'redux';
import { InitMonitorAction } from '../actions';
import { Features, State } from '../reducers/instances';
import { MonitorStateMonitorState } from '../reducers/monitor';
import { ThemeFromProvider } from '@redux-devtools/ui';
import { StateTreeSettings } from '../reducers/stateTreeSettings';
interface Props {
    monitor: string;
    liftedState: State;
    monitorState: MonitorStateMonitorState | undefined;
    dispatch: (action: LiftedAction<unknown, Action<string>, unknown> | InitMonitorAction) => void;
    features: Features | undefined;
    theme: ThemeFromProvider;
    stateTreeSettings: StateTreeSettings;
}
declare class DevTools extends Component<Props> {
    monitorProps?: object;
    Monitor?: React.ComponentType<LiftedState<unknown, Action<string>, unknown>> & {
        update(monitorProps: unknown, state: unknown | undefined, action: Action<string>): unknown;
    };
    preventRender?: boolean;
    constructor(props: Props);
    getMonitor(props: Props, skipUpdate?: unknown): void;
    UNSAFE_componentWillUpdate(nextProps: Props): void;
    shouldComponentUpdate(nextProps: Props): boolean;
    dispatch: (action: LiftedAction<unknown, Action<string>, unknown> | InitMonitorAction) => void;
    render(): React.JSX.Element | null;
}
declare const _default: React.ForwardRefExoticComponent<{
    key?: React.Key | null | undefined;
    monitor: string;
    ref?: React.Ref<DevTools> | undefined;
    dispatch: (action: InitMonitorAction | LiftedAction<unknown, Action<string>, unknown>) => void;
    monitorState: MonitorStateMonitorState | undefined;
    stateTreeSettings: StateTreeSettings;
    liftedState: State;
    features: Features | undefined;
} & {
    theme?: any;
}>;
export default _default;
