import type { Binding } from '../binding/Binding.js'; import { emptyStateSymbol } from '../misc/constants.js'; import { AnyProviderResolver } from '../provider/AnyProviderResolver.js'; import { type EncapsulatedScope, Scope, type ScopeFactory, type ScopeResolver } from './Scope.js'; import type { ScopeAnchor } from './ScopeAnchor.js'; interface SingletonScopeData { cache: V | typeof emptyStateSymbol; } export type EncapsulatedSingletonScope = EncapsulatedScope & SingletonScopeData; export declare function isSingletonScope(scope: EncapsulatedScope): scope is EncapsulatedSingletonScope; export declare class SingletonScopeFactory implements ScopeFactory { create(cache?: V | typeof emptyStateSymbol): EncapsulatedSingletonScope; } export type SingletonScopeBinding = Binding>; export declare class SingletonScopeResolver implements ScopeResolver { private readonly providerResolver; constructor(providerResolver: AnyProviderResolver); canResolve(binding: Binding): binding is SingletonScopeBinding; resolve(binding: SingletonScopeBinding, anchor: A | null): V; } export {};