import { Auto } from "../auto"; import { ILogger } from "./logger"; import InteractiveInit from "../init"; import { LoadedAutoRc } from "../types"; export declare type IPluginConstructor = new (options?: any) => IPlugin; /** A plugin to auto */ export interface IPlugin { /** The name to identify the plugin by */ name: string; /** Called when running `auto init`. gives plugin ability to add custom init experience. */ init?(initializer: InteractiveInit): void; /** Called when registering the plugin with auto */ apply(auto: Auto): void; } export interface InstalledModule { /** The name of the module */ name: string; /** The path to the module */ path: string; } /** Get the paths of available installed plugins. */ export declare const getInstalledPlugins: (global?: boolean) => InstalledModule[]; /** Try to load a plugin in various ways */ export declare function findPlugin(pluginPath: string, logger: ILogger, extendedLocation?: string): string | undefined; /** Try to load a plugin in various ways */ export declare function loadPlugin([pluginPath, options]: [string, any], logger: ILogger, extendedLocation?: string): IPlugin | undefined; /** List some of the plugins available to auto */ export declare const listPlugins: ({ plugins }: LoadedAutoRc, logger: ILogger, extendedLocation?: string | undefined) => Promise; //# sourceMappingURL=load-plugins.d.ts.map