import { Entity, Validators } from '@backstage/catalog-model';
import { CatalogProcessor, CatalogProcessorParser, EntitiesSearchFilter, EntityProvider, PlaceholderResolver, ScmLocationAnalyzer } from '@backstage/plugin-catalog-node';
import { Permission, PermissionRuleParams } from '@backstage/plugin-permission-common';
import { PermissionRule } from '@backstage/plugin-permission-node';
/**
 * @alpha
 */
export interface CatalogProcessingExtensionPoint {
    addProcessor(...processors: Array<CatalogProcessor | Array<CatalogProcessor>>): void;
    addEntityProvider(...providers: Array<EntityProvider | Array<EntityProvider>>): void;
    addPlaceholderResolver(key: string, resolver: PlaceholderResolver): void;
    setOnProcessingErrorHandler(handler: (event: {
        unprocessedEntity: Entity;
        errors: Error[];
    }) => Promise<void> | void): void;
}
/** @alpha */
export interface CatalogModelExtensionPoint {
    /**
     * Sets the validator function to use for one or more special fields of an
     * entity. This is useful if the default rules for formatting of fields are
     * not sufficient.
     *
     * @param validators - The (subset of) validators to set
     */
    setFieldValidators(validators: Partial<Validators>): void;
    /**
     * Sets the entity data parser which is used to read raw data from locations
     * @param parser - Parser which will used to extract entities from raw data
     */
    setEntityDataParser(parser: CatalogProcessorParser): void;
}
/**
 * @alpha
 */
export declare const catalogProcessingExtensionPoint: import("@backstage/backend-plugin-api").ExtensionPoint<CatalogProcessingExtensionPoint>;
/**
 * @alpha
 */
export interface CatalogAnalysisExtensionPoint {
    addLocationAnalyzer(analyzer: ScmLocationAnalyzer): void;
}
/**
 * @alpha
 */
export declare const catalogAnalysisExtensionPoint: import("@backstage/backend-plugin-api").ExtensionPoint<CatalogAnalysisExtensionPoint>;
/** @alpha */
export declare const catalogModelExtensionPoint: import("@backstage/backend-plugin-api").ExtensionPoint<CatalogModelExtensionPoint>;
/**
 * @alpha
 */
export type CatalogPermissionRuleInput<TParams extends PermissionRuleParams = PermissionRuleParams> = PermissionRule<Entity, EntitiesSearchFilter, 'catalog-entity', TParams>;
/**
 * @alpha
 */
export interface CatalogPermissionExtensionPoint {
    addPermissions(...permissions: Array<Permission | Array<Permission>>): void;
    addPermissionRules(...rules: Array<CatalogPermissionRuleInput | Array<CatalogPermissionRuleInput>>): void;
}
/**
 * @alpha
 */
export declare const catalogPermissionExtensionPoint: import("@backstage/backend-plugin-api").ExtensionPoint<CatalogPermissionExtensionPoint>;
