import ProjectFileSystem from '../commons/ProjectFileSystem'; import HdbCatalog from './hdb-catalog'; export type CDSDefinition = { actions: any; kind: string; name: string; urlPath: string; '@path': string; '$location': { file: string; }; query?: any; elements?: any; _service?: any; '@cds.persistence.skip'?: boolean; '@cds.external'?: boolean; associations?: any; compositions?: any; projection?: any; '@PersonalDataManagerService'?: boolean; '@requires'?: string | string[]; '@restrict'?: any | any[]; '@restrict.to'?: string | string[]; '$syntax'?: string; '@protocol'?: string; '@ObjectModel.leadingEntity.name'?: string; '@businessobjects'?: boolean; '@projectionviews'?: boolean; rootEntity?: boolean; }; export type LoadOptions = { flavor: 'parsed' | 'xtended' | 'inferred'; }; export default class CapApi { fs: ProjectFileSystem; paths: string[]; csn: any; cachedServices: CDSDefinition[]; static cds: any; constructor(fs: ProjectFileSystem, paths: string[]); cds(): Promise; load(options?: LoadOptions, forAbap?: boolean): Promise; getHdbCatalog(): Promise; getLcapSrvCDSFullPath(fs: ProjectFileSystem): Promise; services(): CDSDefinition[]; contexts(): CDSDefinition[]; entities(): CDSDefinition[]; functions(): CDSDefinition[]; actions(): CDSDefinition[]; events(): CDSDefinition[]; edmx(service: string): Promise; }