/** * ValidationStepRegistry — Named registration and DI-based instantiation of validation steps. * * Key design: parameterized step names use colon separator. * "StatusTransitionValidation:IN_PROGRESS" → factory for "StatusTransitionValidation" called with param "IN_PROGRESS" */ import type { ValidationStep } from './types.js'; import type { IIssueRepository, IIntegrityValidator, IRepositoryRepository, IProjectConfig, IWorkflowConfig, IGitWorkflowConfig } from '../../container/interfaces.js'; import type { IAgentService } from '../agents/agent-service.js'; import type { IContainerMetadataService } from '../containers/container-metadata-service.js'; import type { MethodologyProfile } from '../../profiles/types.js'; export interface StepDependencies { issueRepository: IIssueRepository; integrityValidator: IIntegrityValidator; repositoryRepository: IRepositoryRepository; projectConfig: IProjectConfig; workflowConfig: IWorkflowConfig; gitWorkflowConfig: IGitWorkflowConfig; /** Optional — only available in multi-agent mode */ agentService?: IAgentService; /** Optional — required for CircuitBreakerValidation */ containerMetadataService?: IContainerMetadataService; /** Methodology profile — required for profile-aware validation steps */ profile: MethodologyProfile; } export type ValidationStepFactory = (deps: StepDependencies, param?: string) => ValidationStep; export interface IValidationStepRegistry { register(name: string, factory: ValidationStepFactory): void; create(name: string, deps: StepDependencies): ValidationStep; has(name: string): boolean; getRegisteredNames(): string[]; } export declare class ValidationStepRegistry implements IValidationStepRegistry { private readonly factories; register(name: string, factory: ValidationStepFactory): void; create(name: string, deps: StepDependencies): ValidationStep; has(name: string): boolean; getRegisteredNames(): string[]; /** Parse "StepName:PARAM" into components */ static parseName(name: string): { stepName: string; param?: string; }; } //# sourceMappingURL=validation-step-registry.d.ts.map