import { Monitor } from '@neo-one/monitor-esnext-esm'; import { ResourceType } from './ResourceType'; import { TaskList } from './TaskList'; import { CLIArgs, CLIHook, CreateHook, InteractiveCommand, PluginManager } from './types'; export interface PluginOptions { readonly monitor: Monitor; } export interface CLIHookConfig { readonly name: string; readonly hook: CLIHook; } export interface CreateHookConfig { readonly plugin: string; readonly resourceType: string; readonly hook: CreateHook; } export declare class Plugin { readonly monitor: Monitor; constructor({ monitor }: PluginOptions); reset(): Promise; readonly name: string; readonly names: { readonly capital: string; readonly capitalPlural: string; readonly lower: string; readonly lowerPlural: string; }; readonly resourceTypes: ReadonlyArray; readonly resourceTypeByName: { readonly [resourceType: string]: ResourceType; }; readonly dependencies: ReadonlyArray; readonly commands: ReadonlyArray<(cliArgs: CLIArgs) => void>; readonly interactive: ReadonlyArray; readonly createHooks: ReadonlyArray; readonly cliPreHooks: ReadonlyArray; readonly cliPostHooks: ReadonlyArray; executeTaskList(_pluginManager: PluginManager, _options: string): TaskList; request(_pluginManager: PluginManager, _options: string): Promise; }