import type { Annotations, ODataServiceInfo, ServiceType } from './base.js'; import { CatalogService } from './base.js'; export interface V4Service { RepositoryId: string; ServiceId: string; ServiceVersion: string; ServiceAlias: string; Description: string; ServiceUrl: string; ServiceType: ServiceType; } /** * v4 Service Group */ export interface ServiceGroup { GroupId: string; Description: string; DefaultSystem: { SystemAlias: string; Description: string; Services: V4Service[]; }; } /** * OData V4 specific implmentation of SAP's catalog service */ export declare class V4CatalogService extends CatalogService { private readonly logger; static readonly PATH = "/sap/opu/odata4/iwfnd/config/default/iwfnd/catalog/0002"; /** * Map the V4 service information to a version independent structure. * * @param groups v4 service groups * @param entitySet entity set used for service selection. e.g. `RecommendedServices` * @param dedup if true, duplicate services will be removed based on their id. Duplicate services may appear in multiple groups, e.g. '/IWBEP/ALL'. * @returns version independent information */ protected mapServices(groups: ServiceGroup[], entitySet: string, dedup?: boolean): ODataServiceInfo[]; /** * Fetch all services from the backend using the @nexlink parameter to fetch all pages serially. * * @returns version independent service information */ protected fetchServicesNextLink(): Promise; /** * Fetches all services from the catalog. * * @param useNextLink if true, uses the nextLink parameter to fetch all pages serially, otherwise fetches all pages in parallel. * @returns v4 services */ protected fetchServices(useNextLink?: boolean): Promise; /** * Fetches all services from the catalog in parallel. Uses the total service count to fetch all service group pages in parallel * to improve performance where larger numbers of services and therefore pages are available. * * @returns List of unique services */ protected fetchServicesParallel(): Promise; /** * For OData v4, all annotations are already included in the metadata and no additional request is required. * * @returns an empty array */ getAnnotations(): Promise; /** * For OData v4, no additonal call is required to retrieve the service type. * * @returns undefined */ getServiceType(): Promise; } //# sourceMappingURL=v4-catalog-service.d.ts.map