import { ContractEntity } from '../../domain/entities/ContractEntity'; import { IContractRepository } from '../../domain/repositories/IContractRepository'; import { IDomainEventPublisher } from '../../domain/shared/events'; import { Result } from '../../shared/result'; import { ValidationError } from '../../domain/errors/ValidationError'; import { IContractRegistry } from './IContractRegistry'; import { RegistryStats } from './RegistryStats'; /** * Contract Registry - Centralized contract management system * Provides registration, discovery, and lifecycle management for contracts */ export declare class ContractRegistry implements IContractRegistry { private readonly repository; private static instance; private registeredContracts; private contractCategories; private readonly eventPublisher?; constructor(repository: IContractRepository, eventPublisher?: IDomainEventPublisher); /** * Get singleton instance (for global registry) */ static getInstance(repository?: IContractRepository, eventPublisher?: IDomainEventPublisher): ContractRegistry; /** * Register a contract in the registry */ register(contract: ContractEntity): Promise>; /** * Unregister a contract from the registry */ unregister(contractId: string): Promise>; /** * Get contract by ID */ getById(contractId: string): Promise>; /** * Get contract by name */ getByName(name: string): Promise>; /** * Get all contracts in a category */ getByCategory(category: string): Promise>; /** * Get all registered contracts */ getAll(): Promise>; /** * Get active contracts only */ getActive(): Promise>; /** * Check if contract exists */ exists(contractId: string): Promise>; /** * Refresh registry from repository */ refresh(): Promise>; /** * Get registry statistics */ getStats(): RegistryStats; /** * Clear local registry (for testing) */ clear(): void; private validateContractForRegistration; private addToCategoryIndex; private removeFromCategoryIndex; private publishEvent; } //# sourceMappingURL=ContractRegistry.d.ts.map