import { ICamelComponentDefinition } from './camel-components-catalog'; import { ICamelProcessorDefinition } from './camel-processors-catalog'; import { ICamelLanguageDefinition } from './camel-languages-catalog'; import { ICamelDataformatDefinition } from './camel-dataformats-catalog'; import { CatalogKind } from './catalog-kind'; import { IKameletDefinition } from './kamelets-catalog'; import { ICamelLoadBalancerDefinition } from './camel-loadbalancers-catalog'; export interface CamelCatalogIndex { catalogs: Catalogs; schemas: Record; } export interface Catalogs { models: CatalogEntry; components: CatalogEntry; languages: CatalogEntry; dataformats: CatalogEntry; kamelets: CatalogEntry; kameletBoundaries: CatalogEntry; patterns: CatalogEntry; entities: CatalogEntry; loadbalancers: CatalogEntry; } export interface CatalogEntry { name: string; version: string; file: string; } export interface SchemaEntry extends CatalogEntry { description: string; } export type ComponentsCatalogTypes = ICamelComponentDefinition | ICamelProcessorDefinition | ICamelLanguageDefinition | ICamelDataformatDefinition | ICamelLoadBalancerDefinition | IKameletDefinition; export type DefinedComponent = { name: string; type: CatalogKind; definition?: ComponentsCatalogTypes; defaultValue?: object; }; export interface ComponentsCatalog { [CatalogKind.Component]?: Record; [CatalogKind.Processor]?: Record; [CatalogKind.Pattern]?: Record; [CatalogKind.Entity]?: Record; [CatalogKind.Language]?: Record; [CatalogKind.Dataformat]?: Record; [CatalogKind.Loadbalancer]?: Record; [CatalogKind.Kamelet]?: Record; }