import { type constructor } from '../utils';
import { DependencyKey, type IContainer } from '../container/IContainer';
import { type InjectFn } from '../hooks/HookContext';
import { type IInjectFnResolver } from './IInjector';
export declare const inject: <T>(fn: InjectFn<T> | IInjectFnResolver<T> | DependencyKey | constructor<T>) => ParameterDecorator;
export declare function isInjectBuilder<T>(fn: object): fn is IInjectFnResolver<T>;
export declare const toInjectFn: <T>(target: InjectFn<T> | IInjectFnResolver<T> | DependencyKey | constructor<T>) => InjectFn<T>;
export declare const resolveArgs: (Target: constructor<unknown>, methodName?: string) => (scope: IContainer, ...deps: unknown[]) => unknown[];
