/**
 * Microservices Architecture for ZinTrust Framework
 * Sealed namespace pattern with immutable microservice management
 */
export interface MicroserviceConfig {
    id?: string;
    name: string;
    domain: string;
    port?: number;
    version?: string;
    dependencies?: string[];
    status?: string;
    baseUrl?: string;
    healthCheckUrl?: string;
    healthCheck?: boolean | string;
    lastHealthCheck?: number;
}
export interface IMicroserviceManager {
    register(config: MicroserviceConfig): MicroserviceConfig;
    getService(domain: string, name: string): MicroserviceConfig | undefined;
    getAllServices(): MicroserviceConfig[];
    getServicesByDomain(domain: string): MicroserviceConfig[];
    callService(name: string, pathOrOptions: string | Record<string, unknown>, options?: Record<string, unknown>): Promise<unknown>;
    getStatusSummary(): Record<string, unknown>;
    healthCheckAll(): Promise<Record<string, boolean>>;
    stopAllServices(): Promise<void>;
    reset(): void;
}
export interface IMicroserviceManagerFactory {
    create(): IMicroserviceManager;
    getInstance(): IMicroserviceManager;
    reset(): void;
    initialize(configs?: MicroserviceConfig[], basePort?: number): IMicroserviceManager;
    registerService(config: MicroserviceConfig): MicroserviceConfig;
    startService(name: string, handler?: unknown): Promise<boolean>;
    stopService(name: string): Promise<boolean>;
    stopAllServices(): Promise<void>;
    getService(domain: string, name: string): MicroserviceConfig | undefined;
    getAllServices(): MicroserviceConfig[];
    getServicesByDomain(domain: string): MicroserviceConfig[];
    callService(name: string, pathOrOptions: string | Record<string, unknown>, options?: Record<string, unknown>): Promise<unknown>;
    checkServiceHealth(name: string): Promise<boolean>;
    healthCheckAll(): Promise<Record<string, boolean>>;
    getStatusSummary(): Record<string, unknown>;
    discoverServices(): Promise<MicroserviceConfig[]>;
}
declare const create: () => IMicroserviceManager;
declare const getInstance: () => IMicroserviceManager;
declare const reset: () => void;
declare const initialize: (configs?: MicroserviceConfig[], initBasePort?: number) => IMicroserviceManager;
declare const register: (config: MicroserviceConfig) => MicroserviceConfig;
declare const registerService: (config: MicroserviceConfig) => MicroserviceConfig;
declare const startService: (name: string, _handler?: unknown) => Promise<boolean>;
declare const stopService: (name: string) => Promise<boolean>;
declare const stopAllServices: () => Promise<void>;
declare const getService: (domain: string, name: string) => MicroserviceConfig | undefined;
declare const getAllServices: () => MicroserviceConfig[];
declare const getServicesByDomain: (domain: string) => MicroserviceConfig[];
declare const callService: (name: string, pathOrOptions: string | Record<string, unknown>, options?: Record<string, unknown>) => Promise<unknown>;
declare const checkServiceHealth: (name: string) => Promise<boolean>;
declare const healthCheckAll: () => Promise<Record<string, boolean>>;
declare const getStatusSummary: () => Record<string, unknown>;
declare const discoverServices: () => Promise<MicroserviceConfig[]>;
export declare const MicroserviceManager: IMicroserviceManagerFactory & IMicroserviceManager;
export declare function isMicroservicesEnabled(): boolean;
export declare function getEnabledServices(): string[];
export { callService, checkServiceHealth, create, discoverServices, getAllServices, getInstance, getService, getServicesByDomain, getStatusSummary, healthCheckAll, initialize, register, registerService, reset, startService, stopAllServices, stopService, };
export default MicroserviceManager;
//# sourceMappingURL=MicroserviceManager.d.ts.map