import { Entity } from '@backstage/catalog-model';
import { JsonObject } from '@backstage/types';
/**
 * The request to process an entity.
 * @public
 */
export type EntityProcessingRequest = {
    entity: Entity;
    state?: JsonObject;
};
/**
 * A string to associate to the entity itself.
 */
export type RefreshKeyData = {
    key: string;
};
/**
 * Responsible for executing the individual processing steps in order to fully process an entity.
 */
export interface CatalogProcessingOrchestrator {
    process(request: EntityProcessingRequest): Promise<EntityProcessingResult>;
}
/**
 * Represents the engine that drives the processing and stitching loops. Some
 * backend instances may choose to not call start, if they focus only on API
 * interactions.
 *
 * @public
 */
export interface CatalogProcessingEngine {
    start(): Promise<void>;
    stop(): Promise<void>;
}
