import { Project, ItemFilter, Item, ProjectFileSystem, Tag, ItemType, ProjectData, ModuleData, KeyIn, ItemDetailInfoOptions } from '@sap/artifact-management-base-types'; import ItemWatcherApi from './ItemWatcherApi'; import AutoBuilder from './AutoBuilder'; import { IChildLogger } from '@vscode-logging/types'; import MtaGeneratorSettings from '../mta-generator/MtaGeneratorSettings'; export declare const ProjectApiType: { new (...args: any): ProjectApi; type: string; }; export default interface ProjectApi { fs(): ProjectFileSystem; /** * Read project, its modules and entities * */ read(logger?: IChildLogger, tag?: KeyIn): Promise; /** * Watch items * */ watchItems(filter?: ItemFilter, pattern?: string[], logger?: IChildLogger): Promise; /** * Auto build artifacts required when working with development tools */ autoBuild(logger?: IChildLogger): Promise; /** * Read entities provided by the project * * @param filter */ readItems(filter?: ItemFilter, logger?: IChildLogger): Promise; /** * Read entities with detail information provided by the project * * @param filter */ readDetailItems(filter?: ItemFilter, logger?: IChildLogger): Promise; /** * Read detail information for the required type, ref and optional entityPath provided by the project. * Currently, we support only "com.sap.cds/Entity" type. * * @param type * @param ref * @param entityPath */ getDetailInfo(type: KeyIn, ref: string, entityPath?: string, options?: ItemDetailInfoOptions, logger?: IChildLogger): Promise; /** * It starts the CDS server and watches for any modifications in the files, if any changes detected it automatically restarts to serve the new content. * @param options comma separated list of options and their values. e.g. ['port', '8008', 'open']. Currently only supports port number and open option. * @param logger */ prepareForRun(options?: string[] | undefined, logger?: IChildLogger): Promise; build(options?: MtaGeneratorSettings, logger?: IChildLogger): Promise; buildManifest(options?: MtaGeneratorSettings, logger?: IChildLogger): Promise; removeManifest(): Promise; /** * Deploy already built project */ deploy(logger?: IChildLogger): Promise; kymaDeploy(kymaNS?: string, tag?: string, dockerNS?: string): Promise; /** * get Launch URL of Project Already Deployed */ /** * @deprecated Use getApplicationDeploymentSummary() instead */ getProjectOverviewURL(logger?: IChildLogger): Promise; /** * Get Project level info of the project */ getProjectInfo(logger?: IChildLogger): Promise; /** * Get Module level info of all modules in project */ getModulesInfo(logger?: IChildLogger): Promise; /** * Get contents of mta.yaml file */ getManifest(options?: MtaGeneratorSettings, logger?: IChildLogger): Promise; /** * Get summary of application deployment */ getApplicationDeploymentSummary(logger?: IChildLogger): Promise<{ ProjectOverviewURL?: string; DeployedUTCTime?: string; ApplicationLogURL?: string; } | undefined>; /** * Read and parse a data file (csv|xml), or generate the main entity for a data model * @param data * @param mainEntityName * @param logger */ getDataInfo(data: any, mainEntityName?: string, logger?: IChildLogger): Promise; enableSaas(): Promise; updateXsuaaService(): Promise; /** * Get the list of all the services in the project */ getServicesInfo(): Promise; /** * Get the edmx of a service */ getServiceEdmx(path: string, name: string): Promise; /** * add watch pattern */ addWatchPattern(pattern: string, func: (event: string, file: string) => void): void; }