import { PluginsState } from '../Redux/ActionsReducers/PluginsRedux';
import { IPushPullApi } from './IPushPullApi';
import { OpenFinApi } from './OpenFinApi';
import { InteropioPluginApi } from './InteropioPluginApi';
/**
 * API methods dealing with AdapTable plugins
 */
export interface PluginsApi {
    /**
     * Retrieves the Plugin State (internal only)
     */
    getPluginsState(): PluginsState;
    /**
     * Gets the State for a given Plugin
     * @param pluginId plugin state to retrieve
     */
    getPluginState(pluginId: string): any;
    /**
     * Registers a Plugin (internal method)
     * @param pluginId Plugin to register
     * @param initialPluginState any state the Plugin requires
     */
    registerPlugin(pluginId: string, initialPluginState: any): void;
    /**
     * Sets the initial state for a given plugin (internal method)
     * @param pluginId Plugin to set state for
     * @param pluginState State to set
     */
    setPluginState(pluginId: string, pluginState: any): void;
    /**
     * Returns ipushpull API class in Adaptable API
     */
    getipushpullPluginApi(): IPushPullApi;
    /**
     * Returns OpenFin API class in Adaptable API
     */
    getOpenFinPluginApi(): OpenFinApi;
    /**
     * Returns Interopio API class in Adaptable API
     */
    getInteropioPluginApi(): InteropioPluginApi;
}
