import { InitializeBase } from "../../bases/initialize-base"; import type { ServiceBase } from "./service-base"; declare global { var __zenflux_base_service_locator__: ServiceLocator | undefined; } export declare class ServiceLocator extends InitializeBase { protected static instance: ServiceLocator | null; private emitter; private services; private initializing; static getName(): string; static get $(): ServiceLocator; register(service: new (...args: any[]) => T, ...args: any[]): void; unregister(serviceName: string): boolean; get(serviceName: string, options?: { silent: boolean; }): T; waitFor(serviceName: string, options?: { timeout?: number; metadata?: any; internal?: boolean; silent?: boolean; }): Promise; waitForAll(options?: { timeout?: number; metadata?: any; internal?: boolean; }): Promise; private createServicePromise; private createTimeoutPromise; private validateCircularDependencies; private performDepthFirstSearch; private getDependencies; }