import { ServiceScope, type ServiceKey } from '../index'; /** * Interface for a simple object representation of a ServiceScope. */ export interface IMonitoredServiceScopeNode { scopeSequenceId: number; level: number; children: ReadonlyArray; serviceNames: ReadonlyArray; } /** * The MonitoredServiceScope should be used to monitor and audit the status of a ServiceScope. * This class should only be used in debugging scenarios. Simply replace the usage of * the ServiceScope.startNewRoot with MonitoredServiceScope.startNewMonitoredRoot to take * advantage of additional logging capabilities. * */ export default class MonitoredServiceScope extends ServiceScope { private _children; private _level; private _scopeSequenceId; private _serviceNames; private _totalNumberOfScopes; /** * {@inheritDoc ServiceScope.startNewRoot} */ static startNewMonitoredRoot(): MonitoredServiceScope; /** * Returns the parent of the current MonitoredServiceScope, or undefined if this is a root scope. * * @returns the parent service scope */ getParent(): MonitoredServiceScope | undefined; /** * Constructs a new MonitoredServiceScope that is a child of the current scope. * * @remarks * The service scopes form a tree structure, such that when consuming a service, * if the key is not explicitly provided by a child scope, the parent hierarchy * will be consulted. * * @returns the newly created root MonitoredServiceScope */ startNewChild(): MonitoredServiceScope; /** * Returns an array of the current scope's children. */ get children(): ReadonlyArray; /** * Returns the number of generations that the current scope is from the root scope. */ get level(): number; /** * Returns the order in which the current MonitoredScope was created */ get scopeSequenceId(): number; /** * Returns an array of the services registered under the current scope */ get serviceNames(): ReadonlyArray; protected _registerService(serviceKey: ServiceKey, service: T): void; private constructor(); } //# sourceMappingURL=MonitoredServiceScope.d.ts.map