import { type Token } from '@frontmcp/di'; import { type EntryLineage, type EntryOwnerRef } from '../common'; import { type WorkflowEntry } from '../common/entries/workflow.entry'; import { type WorkflowType } from '../common/interfaces/workflow.interface'; import { type WorkflowDynamicRecord, type WorkflowRecord } from '../common/records/workflow.record'; import type ProviderRegistry from '../provider/provider.registry'; import { RegistryAbstract, type RegistryBuildMapResult } from '../regsitry'; import { type WorkflowChangeEvent } from './workflow.events'; import { WorkflowInstance } from './workflow.instance'; export interface IndexedWorkflow { token: Token; instance: WorkflowEntry; baseName: string; lineage: EntryLineage; ownerKey: string; qualifiedName: string; qualifiedId: string; source: WorkflowRegistry; } export interface WorkflowRegistryInterface { readonly owner: EntryOwnerRef; getWorkflows(includeHidden?: boolean): WorkflowEntry[]; findByName(name: string): WorkflowEntry | undefined; findById(id: string): WorkflowEntry | undefined; search(query?: string, opts?: { tags?: string[]; labels?: Record; }): WorkflowEntry[]; registerDynamic(record: WorkflowDynamicRecord): void; removeDynamic(workflowId: string): boolean; subscribe(opts: { immediate?: boolean; }, cb: (evt: WorkflowChangeEvent) => void): () => void; hasAny(): boolean; } export default class WorkflowRegistry extends RegistryAbstract implements WorkflowRegistryInterface { readonly owner: EntryOwnerRef; private localRows; private dynamicRows; private byName; private byId; private version; private emitter; private logger?; constructor(providers: ProviderRegistry, list: WorkflowType[], owner: EntryOwnerRef); protected buildMap(list: WorkflowType[]): RegistryBuildMapResult; protected buildGraph(): void; protected initialize(): Promise; getWorkflows(includeHidden?: boolean): WorkflowEntry[]; findByName(name: string): WorkflowEntry | undefined; findById(id: string): WorkflowEntry | undefined; search(query?: string, opts?: { tags?: string[]; labels?: Record; }): WorkflowEntry[]; registerDynamic(record: WorkflowDynamicRecord): void; removeDynamic(workflowId: string): boolean; subscribe(opts: { immediate?: boolean; }, cb: (evt: WorkflowChangeEvent) => void): () => void; hasAny(): boolean; private reindex; private bump; private makeRow; } //# sourceMappingURL=workflow.registry.d.ts.map