import { NerdVisionAgent } from "../NerdVisionAgent"; /** * This will load all the plugins it can * * @param nv the NerdVision agent to use * * @return plugins the list of plugins that where loaded */ export declare const loadPlugins: (nv: NerdVisionAgent) => Promise; /** * This is a plugin for NerdVision this will be called automatically on start. */ export interface IPlugin { /** * This method is called once on start of NerdVision passing in the instance of NerdVision to use. * * @param nv the NerdVision agent to use */ loadPlugin(nv: NerdVisionAgent): void; } /** * Replace a method in an object with a wrapped version of itself. * * @param source An object that contains a method to be wrapped. * @param name The name of the method to be wrapped. * @param replacementFactory A higher-order function that takes the original version of the given method and returns a * wrapped version. Note: The function returned by `replacementFactory` needs to be a non-arrow function, in order to * preserve the correct value of `this`, and the original method must be called using `origMethod.call(this, )` or `origMethod.apply(this, [])` (rather than being called directly), again to preserve `this`. * @returns void */ export declare function fill(source: { [key: string]: any; }, name: string, replacementFactory: (func: (...args: any[]) => any) => (...args: any[]) => any): void; /** * This exception means the plugin could not be enabled. */ export declare class DidNotEnable extends Error { constructor(message: string); }