import { InjectionToken } from './injection-token.js'; /** * A unique object used for retrieving items from the `Injector`. * * Keys have: * - a system-wide unique `id`. * - a `token`. * * `DualKey` is used internally by `Injector` because its system-wide unique `id` allows * the injector to store created objects in a more efficient way. * * `DualKey` should not be created directly. `Injector` creates keys automatically when * resolving providers. */ export declare class DualKey { token: any; id: number; constructor(token: any, id: number); } /** * This class is used to automatically create an extension group, which should run before group token. */ export declare class BeforeToken extends InjectionToken { } /** * This class is used to automatically create a token for `@inject(token, ctx)`. */ export declare class ParamToken extends InjectionToken { } export declare class KeyRegistry { #private; /** * Retrieves a `DualKey` for a token. */ static get(token: NonNullable): DualKey; /** * @returns the number of keys registered in the system. */ static get numberOfKeys(): number; /** * Generates a unique token for `groupToken`. This token is used to automatically * create an extension group, which should run before `groupToken`. */ static getBeforeToken(groupToken: InjectionToken): BeforeToken; } //# sourceMappingURL=key-registry.d.ts.map