import { TileFilter } from '../../components/Catalog'; import { AddStepMode, BaseVisualCamelEntity, IVisualizationNodeData } from '../visualization/base-visual-entity'; import { BeansEntity } from '../visualization/metadata'; import { BaseCamelEntity } from './entities'; import { SourceSchemaType } from './source-schema-type'; import { RouteTemplateBeansEntity } from '../visualization/metadata/routeTemplateBeansEntity'; export interface CamelResource { getVisualEntities(): BaseVisualCamelEntity[]; getEntities(): BaseCamelEntity[]; addNewEntity(entity?: unknown): string; removeEntity(id?: string): void; supportsMultipleVisualEntities(): boolean; toJSON(): unknown; getType(): SourceSchemaType; /** Components Catalog related methods */ getCompatibleComponents(mode: AddStepMode, visualEntityData: IVisualizationNodeData, definition?: any): TileFilter | undefined; sortFn?: (a: unknown, b: unknown) => number; } export interface BeansAwareResource { createBeansEntity(): BeansEntity; deleteBeansEntity(entity: BeansEntity): void; } export interface RouteTemplateBeansAwareResource { createRouteTemplateBeansEntity(): RouteTemplateBeansEntity; getRouteTemplateBeansEntity(): RouteTemplateBeansEntity | undefined; deleteRouteTemplateBeansEntity(): void; } /** * Creates a CamelResource based on the given {@link type} and {@link json}. If * both are not specified, a default empty {@link CamelRouteResource} is created. * If only {@link type} is specified, an empty {@link CamelResource} of the given * {@link type} is created. * @param type * @param json */ export declare function createCamelResource(json?: unknown, type?: SourceSchemaType): CamelResource;