import * as _backstage_backend_plugin_api from '@backstage/backend-plugin-api'; import { LoggerService, RootConfigService, DiscoveryService, AuthService, CacheService } from '@backstage/backend-plugin-api'; import { PagerDutyEntityMapping, PagerDutySetting, BackstageCustomField, CustomFieldSyncLog, CustomFieldSyncLogFilters, PagerDutyService, PagerDutyEntityMappingsResponse } from '@pagerduty/backstage-plugin-common'; import * as express from 'express'; import { CatalogApi, GetEntitiesResponse } from '@backstage/catalog-client'; type RawDbEntityResultRow = { id: string; entityRef: string; serviceId: string; integrationKey: string; account?: string; processedDate?: Date; }; /** @public */ interface PagerDutyBackendStore { insertEntityMapping(entity: PagerDutyEntityMapping): Promise; bulkInsertEntityMappings(entities: PagerDutyEntityMapping[]): Promise; getAllEntityMappings(): Promise; findEntityMappingByEntityRef(entityRef: string): Promise; findEntityMappingByServiceId(serviceId: string): Promise; updateSetting(setting: PagerDutySetting): Promise; findSetting(settingId: string): Promise; getAllSettings(): Promise; insertCustomField(customField: Omit): Promise; getAllCustomFields(subdomain: string, options?: { enabled?: boolean; }): Promise; findCustomFieldById(id: number): Promise; updateCustomField(id: number, updates: { pagerdutyCustomFieldDisplayName: string; backstageEntityMappingPath: string; description?: string; }): Promise; setCustomFieldEnabled(id: number, enabled: boolean): Promise; deleteCustomField(id: number): Promise; updateCustomFieldPagerDutyId(id: number, pagerdutyCustomFieldId: string): Promise; insertSyncLog(log: Omit): Promise; getSyncLogs(subdomain: string, options?: SyncLogQueryOptions): Promise<{ logs: CustomFieldSyncLog[]; total: number; customFieldNames: string[]; entityPaths: string[]; serviceNames: string[]; }>; cleanupSyncLogs(options: SyncLogCleanupOptions): Promise; } /** @public */ type SyncLogCleanupOptions = { olderThanDays: number; maxRows: number; batchSize: number; maxBatchesPerRun: number; }; /** @public */ type SyncLogCleanupResult = { deletedByAge: number; deletedByCap: number; batchesUsed: number; }; /** @public */ type SyncLogQueryOptions = CustomFieldSyncLogFilters & { limit?: number; offset?: number; }; interface RouterOptions { logger: LoggerService; config: RootConfigService; store: PagerDutyBackendStore; discovery: DiscoveryService; auth: AuthService; catalogApi?: CatalogApi; cache: CacheService; } type Annotations = { 'pagerduty.com/integration-key': string; 'pagerduty.com/service-id': string; 'pagerduty.com/account': string; }; declare function buildEntityMappingsResponse(entityMappings: RawDbEntityResultRow[], componentEntitiesDict: Record, componentEntities: GetEntitiesResponse, pagerDutyServices: PagerDutyService[]): Promise; declare function createRouter(options: RouterOptions): Promise; /** @public */ declare const pagerDutyPlugin: _backstage_backend_plugin_api.BackendFeature; export { buildEntityMappingsResponse, createRouter, pagerDutyPlugin as default }; export type { Annotations, RouterOptions };