import { type EntityFileSchema } from '@redocly/config'; import type { AfterRoutesCreatedActions, FileInfo, LifecycleContext } from '../../../../../types'; import type { CatalogEntitiesService } from '../../../database/catalog-entities-service.js'; import type { BaseEntitiesExtractor } from '../base'; import type { FileType } from '../../../../../persistence/file-hashes/types.js'; import type { HashManager } from '../../../utils/hash-manager.js'; import type { BaseApiEntitiesExtractorParams, SpecType } from '../../../types/extractors.js'; export declare abstract class BaseApiEntitiesExtractor> implements BaseEntitiesExtractor { #private; protected type: "api-description"; protected specType: SpecType; protected fileType: FileType; protected actions: AfterRoutesCreatedActions; protected context: LifecycleContext; protected catalogEntitiesService: CatalogEntitiesService; protected fileHashManager: HashManager; protected entitySources: Record; constructor(specType: SpecType, params: BaseApiEntitiesExtractorParams); extract(): Promise; protected validateEntityRelationFileSchema(relation: unknown): void; protected getRbacTeamsForDefinition(relativePath: string): string[]; /** * Resolves the entity key for an API description. * Uses x-redocly-catalog-key if present and non-empty, otherwise derives a key from the file path. * @param realRelativePath - The real relative path of the description file * @param customKey - Optional custom key from x-redocly-catalog-key * @param extensionPattern - Optional regex to strip file extension (default: any extension) */ protected resolveEntityKey({ realRelativePath, customKey, extensionPattern, }: { realRelativePath: string; customKey?: string | null; extensionPattern?: RegExp; }): string; protected abstract loadApiDescriptions(): Promise; protected abstract mapApiDescriptionToEntity(definition: BundledApiDefinition, version: string): EntityFileSchema; protected abstract processApiDescription(definition: BundledApiDefinition, revision: string, version: string, entitiesToRemoveFromFile: Set): Promise; } //# sourceMappingURL=base.d.ts.map