import type { FileInfo, LifecycleContext, ProcessContentActions } from '../../../../../types';
import type { CatalogEntitiesService } from '../../../database/catalog-entities-service.js';
import type { EntityFileSchema } from '@redocly/config';
import type { ApiDescriptionMetadataSchema } from '@redocly/config';
import type { BaseEntitiesExtractor } from '../base';
import type { FileHashesService } from '../../../../../persistence/file-hashes/services/file-hashes-service.js';
import { HashManager } from '../../../utils/hash-manager.js';
type SpecType = Exclude<ApiDescriptionMetadataSchema['specType'], 'jsonschema' | 'avro' | 'zod' | 'protobuf'>;
export type BaseApiEntitiesExtractorParams = {
    actions: ProcessContentActions;
    context: LifecycleContext;
    catalogEntitiesService: CatalogEntitiesService;
    fileHashesService?: FileHashesService;
    hashesCache?: Map<string, string>;
};
export declare abstract class BaseApiEntitiesExtractor<BundledApiDefinition extends Pick<FileInfo, 'realRelativePath' | 'relativePath' | 'isVirtual' | 'hash'>> implements BaseEntitiesExtractor {
    #private;
    protected type: "api-description";
    protected specType: SpecType;
    protected actions: ProcessContentActions;
    protected context: LifecycleContext;
    protected catalogEntitiesService: CatalogEntitiesService;
    protected hashManager: HashManager;
    protected entitySources: Record<string, string>;
    constructor(specType: SpecType, params: BaseApiEntitiesExtractorParams);
    extract(): Promise<void>;
    protected abstract loadApiDescriptions(): Promise<BundledApiDefinition[]>;
    protected abstract mapApiDescriptionToEntity(definition: BundledApiDefinition): EntityFileSchema;
    protected abstract processApiDescription(definition: BundledApiDefinition, definitionUniqueKey: string): Promise<void>;
}
export {};
//# sourceMappingURL=base.d.ts.map