import { TransportBasedServer } from './TransportBasedServer'; import { APIClass, API, APIOptions } from './API'; import { ScriptingTransport } from '../common/json-rpc/types'; export declare enum ScriptingHostEvents { systemWillUnmount = "systemWillUnmount", systemWillEnable = "systemWillEnable", systemDidUnmount = "systemDidUnmount", } export declare function getAPIName(klass: APIClass): string | null; export declare function registerAPI(apiName: string): (klass: APIClass) => void; export declare class ScriptingHost extends TransportBasedServer { unmounted: boolean; apiInstances: Map; private constructor(); static fromTransport(transport: ScriptingTransport): Promise; enable(): void; getAPIInstance(api: { new (options: APIOptions): X; }): X; getAPIInstance(name: string): API | null; unmount(): void; protected initializeAPI(ctor: { new (options: APIOptions): X; factory?(ctor: { new (options: APIOptions): X; }, options: APIOptions): X; }): X; private RPCLoadAPIs(apiNames); }