import * as _backstage_backend_plugin_api from '@backstage/backend-plugin-api';
import { CatalogApi } from '@backstage/catalog-client';
import { Entity } from '@backstage/catalog-model';
import { CatalogProcessor, EntityProvider, PlaceholderResolver, ScmLocationAnalyzer, EntitiesSearchFilter } from '@backstage/plugin-catalog-node';
import { PermissionRuleParams } from '@backstage/plugin-permission-common';
import { PermissionRule } from '@backstage/plugin-permission-node';

/**
 * The catalogService provides the catalog API.
 * @alpha
 */
declare const catalogServiceRef: _backstage_backend_plugin_api.ServiceRef<CatalogApi, "plugin">;

/**
 * @alpha
 */
interface CatalogProcessingExtensionPoint {
    addProcessor(...processors: Array<CatalogProcessor | Array<CatalogProcessor>>): void;
    addEntityProvider(...providers: Array<EntityProvider | Array<EntityProvider>>): void;
    addPlaceholderResolver(key: string, resolver: PlaceholderResolver): void;
}
/**
 * @alpha
 */
declare const catalogProcessingExtensionPoint: _backstage_backend_plugin_api.ExtensionPoint<CatalogProcessingExtensionPoint>;
/**
 * @alpha
 */
interface CatalogAnalysisExtensionPoint {
    addLocationAnalyzer(analyzer: ScmLocationAnalyzer): void;
}
/**
 * @alpha
 */
declare const catalogAnalysisExtensionPoint: _backstage_backend_plugin_api.ExtensionPoint<CatalogAnalysisExtensionPoint>;
/**
 * @alpha
 */
type CatalogPermissionRuleInput<TParams extends PermissionRuleParams = PermissionRuleParams> = PermissionRule<Entity, EntitiesSearchFilter, 'catalog-entity', TParams>;
/**
 * @alpha
 */
interface CatalogPermissionExtensionPoint {
    addPermissionRules(...rules: Array<CatalogPermissionRuleInput | Array<CatalogPermissionRuleInput>>): void;
}
/**
 * @alpha
 */
declare const catalogPermissionExtensionPoint: _backstage_backend_plugin_api.ExtensionPoint<CatalogPermissionExtensionPoint>;

export { CatalogAnalysisExtensionPoint, CatalogPermissionExtensionPoint, CatalogPermissionRuleInput, CatalogProcessingExtensionPoint, catalogAnalysisExtensionPoint, catalogPermissionExtensionPoint, catalogProcessingExtensionPoint, catalogServiceRef };
