import { PluginManifest } from './utils/types'; import ViewController from './ViewController'; import { ViewHandle } from './utils/createViewHandle'; import { ContentScriptType } from './api/types'; import Logger from '../../Logger'; export interface ContentScript { id: string; path: string; } export default class Plugin { private id_; private baseDir_; private manifest_; private scriptText_; private enabled_; private logger_; private viewControllers_; private contentScripts_; private dispatch_; private eventEmitter_; constructor(id: string, baseDir: string, manifest: PluginManifest, scriptText: string, logger: Logger, dispatch: Function); get id(): string; get enabled(): boolean; get manifest(): PluginManifest; get scriptText(): string; get baseDir(): string; on(eventName: string, callback: Function): any; off(eventName: string, callback: Function): any; emit(eventName: string, event?: any): any; registerContentScript(type: ContentScriptType, id: string, path: string): Promise; contentScriptsByType(type: ContentScriptType): ContentScript[]; addViewController(v: ViewController): void; viewController(handle: ViewHandle): ViewController; }