import { ToolIntegrator } from '../tool-integrator';
import { MetricsCalculator } from '../metrics-calculator';
import { VerificationMemory } from '../verification-memory';
import { IVerificationService } from './verification-service.interface';
import { SimilarityEngine } from '../similarity-engine';
type ServiceRegistry = {
    toolIntegrator: ToolIntegrator;
    metricsCalculator: MetricsCalculator;
    similarityEngine: SimilarityEngine;
    verificationMemory: VerificationMemory;
    verificationService: IVerificationService;
};
/**
 * Conteneur de services pour l'injection de dependances.
 *
 * Note: l'API singleton est conservee pour compatibilite, mais les enregistrements
 * sont desormais fortement types.
 */
export declare class ServiceContainer {
    private static instance;
    private readonly services;
    private constructor();
    static getInstance(): ServiceContainer;
    initializeServices(toolIntegrator: ToolIntegrator, metricsCalculator: MetricsCalculator, similarityEngine: SimilarityEngine): void;
    getService<K extends keyof ServiceRegistry>(serviceName: K): ServiceRegistry[K] | null;
    getVerificationService(): IVerificationService;
    registerService(serviceName: string, serviceInstance: unknown): void;
    hasService(serviceName: keyof ServiceRegistry | string): boolean;
    static resetInstance(): void;
    listServices(): string[];
}
export {};
