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