declare namespace Internal { interface AttachedExtension { path: string, trusted: boolean } interface ExtensionConfigJson { version: string, id: string, components: any[], configuration: Object } interface ExtensionConfig { file: ExtensionConfigJson, path: string } interface ExtensionInfo { id: string, trusted: boolean, } interface AppJson { id?: string } interface FrontendJson { sourceMapsType?: string, accessToken?: string, remotePort?: number, hmrPort?: number, apiPort?: number, port?: number, ip?: string } interface UserSettings { sessionFile: string, settingsFolder: string, validate(), getToken(): string, setToken(token: string) } interface FrontendSettings { getIpAddress(): Promise, getPort(): Promise, getApiPort(): Promise, getHmrPort(): Promise, getRemotePort(): Promise, getAccessToken(): Promise, getSourceMapsType(): Promise, setIpAddress(ip: string): Promise, setPort(port: number): Promise, setApiPort(apiPort: number): Promise, setHmrPort(hmrPort: number): Promise, setRemotePort(remotePort: number): Promise, setAccessToken(accessToken: string): Promise, loadSettings(): Promise } interface AppSettings { applicationFolder: string, settingsFolder: string, settingsFile: string, attachedExtensionsFile: string, frontendSettings: FrontendSettings, getApplicationFolder(): string, validate(): Promise, getId(): Promise, setId(id: string): Promise, attachExtension(pathName: string, extensionInfo: ExtensionInfo, force?: boolean): Promise, detachExtension(extensionId: string): Promise, detachAllExtensions(): Promise, loadAttachedExtensions(): Promise<{string, AttachedExtension}>, getFrontendSettings(): FrontendSettings } interface Logger { debug(str: string): void; info(str: string): void; log(str: string): void; warn(str: string): void; error(str: string): void; } interface DcHttpClient { login(username: string, password: string, cb: Function), getInfos (infoType: string, appId: string, deviceId: string, cb: Function), downloadPipelines (applicationId: string, trusted): Promise, uploadPipeline (pipeline: Pipeline, applicationId: string, trusted): Promise, uploadMultiplePipelines(pipelines: Array, applicationId: string, trusted): Promise, removePipeline(pipelineId: string, applicationId: string, trusted): Promise, generateExtensionConfig (config: ExtensionConfigJson, applicationId: string), getApplicationData(applicationId: string, cb: Function) } interface DcRequester { requestAppInfo(appId: string, deviceId: string, cb: Function): void, requestDeviceInfo(appId: string, deviceId: string, cb: Function): void, request(resourceName: string, appId: string, deviceId: string, cb: Function): void, pull(requestId: string): Function } interface Input { id: string; key: string; } interface Output { id: string; key: string; } interface Step { id: string; path: string; type: string; input: Input[]; output: Output[]; } interface Pipeline { id: string, input: Input[], steps: Step[], output: Output[], public: boolean } interface PipelineJson { version: string, pipeline: Pipeline } }