/**
 * Service configuration from service.config.json
 */
export interface ServiceConfig {
    id?: string;
    name: string;
    domain: string;
    port?: number;
    version: string;
    description?: string;
    dependencies?: string[];
    healthCheck?: string;
    database?: {
        isolation: 'shared' | 'isolated';
        migrations: boolean;
    };
    auth?: {
        strategy: 'api-key' | 'jwt' | 'none' | 'custom';
        secretKey?: string;
        publicKey?: string;
    };
    tracing?: {
        enabled: boolean;
        samplingRate?: number;
    };
}
export interface IMicroserviceBootstrap {
    setServicesDir(dir: string): void;
    getServicesDir(): string;
    discoverServices(): Promise<ServiceConfig[]>;
    registerServices(): Promise<void>;
    getServiceConfig(domain: string, name: string): ServiceConfig | undefined;
    getAllServiceConfigs(): ServiceConfig[];
    isServiceIsolated(domain: string, name: string): boolean;
    getServiceAuthStrategy(domain: string, name: string): string;
    isTracingEnabled(domain: string, name: string): boolean;
    getTracingSamplingRate(domain: string, name: string): number;
    initialize(): Promise<void>;
}
/**
 * Microservice Bootstrap - Handles service discovery and initialization
 */
export declare const MicroserviceBootstrap: {
    getInstance(): IMicroserviceBootstrap;
    reset(): void;
    create(): IMicroserviceBootstrap;
};
/**
 * Check if using shared database isolation
 */
export declare function isDatabaseShared(): boolean;
/**
 * Get available authentication strategies
 */
export declare function getAuthStrategies(): string[];
/**
 * Get available database isolations
 */
export declare function getDatabaseIsolations(): string[];
/**
 * Check if request tracing is globally enabled
 */
export declare function isTracingGloballyEnabled(): boolean;
/**
 * Get global tracing sampling rate
 */
export declare function getGlobalTracingSamplingRate(): number;
export declare const MicroservicesConfig: {
    isDatabaseShared: typeof isDatabaseShared;
    getAuthStrategies: typeof getAuthStrategies;
    getDatabaseIsolations: typeof getDatabaseIsolations;
    isTracingGloballyEnabled: typeof isTracingGloballyEnabled;
    getGlobalTracingSamplingRate: typeof getGlobalTracingSamplingRate;
};
export default MicroserviceBootstrap;
//# sourceMappingURL=MicroserviceBootstrap.d.ts.map