import RunUI from '../cp/RunUI'; import ModuleAutoBuilder from './ModuleAutoBuilder'; import ProjectManifestGenerator from './ProjectManifestGenerator'; import ModuleManifestGenerator from './ModuleManifestGenerator'; import ProjectRunner from './ProjectRunner'; import { ProjectReader } from './ProjectReader'; import { ModuleReader } from './ModuleReader'; export declare enum DestinationType { DEST_TO_SERVICE_INSTANCE = 0, DEST_TO_RESOURCE_BEHIND_XSUAA = 1, DEST_TO_SERVICE_INSTANCE_NO_CLOUD = 2 } export declare enum AuthenticationType { OAuth2UserTokenExchange = "OAuth2UserTokenExchange", OAuth2JWTBearer = "OAuth2JWTBearer" } export declare enum ServiceType { CF_MANAGED_SERVICE = "org.cloudfoundry.managed-service", CAP_SERVICE = "org.sap.capservice", CF_USER_PROVIDED_SERVICE = "org.cloudfoundry.user-provided-service" } export declare enum MtaModuleType { APPLICATION_CONTENT = "com.sap.application.content", HTML5 = "html5" } type ServiceAttribute = { name: string; plan: string; planB?: string; }; type AvailableCatalog = { xsuaa: ServiceAttribute; destination: ServiceAttribute; hana: ServiceAttribute; html5_apps_repo_host: ServiceAttribute; html5_apps_repo_runtime: ServiceAttribute; capservice: ServiceAttribute; document: ServiceAttribute; metadata: ServiceAttribute; connectivity: ServiceAttribute; personal_data_manager: ServiceAttribute; logservice: ServiceAttribute; }; export declare const ServiceCatalog: AvailableCatalog; export type Route = { source: string; target: string; service?: string; destination?: string; authenticationType: string; }; export type XSAppJson = { authenticationMethod: string; logout: any; routes: [Route?]; }; export interface IPlugin { readonly name: string; getDependencies(): string[]; getProjectReaders?(): ProjectReader[]; getModuleReaders?(): ModuleReader[]; getProjectManifestGenerators?(): ProjectManifestGenerator[]; getModuleManifestGenerators?(): ModuleManifestGenerator[]; getProjectRunner?(): ProjectRunner; getModuleRunner?(): RunUI; getModuleBuilder?(): ModuleAutoBuilder; } export declare abstract class Plugin implements IPlugin { abstract name: string; getDependencies(): string[]; getProjectReaders?(): ProjectReader[]; getModuleReaders?(): ModuleReader[]; getProjectManifestGenerators?(): ProjectManifestGenerator[]; getModuleManifestGenerators?(): ModuleManifestGenerator[]; getProjectRunner?(): ProjectRunner; getModuleRunner?(): RunUI; getModuleBuilder?(): ModuleAutoBuilder; } export interface IPluginManager { register(plugin: Plugin): void; } export {};