import { type BuildResolver, type Constructor, type DisposableResolver, type FunctionReturning, asClass, asFunction, asValue, type Resolver as AWResolver } from 'awilix'; export type ResolvableInjectable = Constructor & T & FunctionReturning; export type ResolvedInjectable = AWResolver | (BuildResolver & DisposableResolver); type Primitive = typeof asClass | typeof asValue | typeof asFunction; export declare class Resolver { static CLASS: Resolver; static VALUE: Resolver; static FUNCTION: Resolver; private readonly id; private readonly primitive; private constructor(); getId(): string; isClassOrFunction(): boolean; asPrimitive(): Primitive; /** * Wrap the target component to an awilix resolver. * @param {object} target the target component to wrap * @returns {any} the awilix resolver */ wrap(target: ResolvableInjectable): ResolvedInjectable; /** * Lookup a resolver from it name * @param {String} name the name of the resolver to lookup * * @returns {Scope} the {@link Resolver} retrieved from it name * * @default Scope.SINGLETON * * @public */ static fromName(name: string): Resolver; } export {};