import { Injector } from './Injector'; import { InjectOptions } from './Decorators'; export interface Class { new (...args: any[]): T; } export declare class MethodInjector { static resolveDependency(injector: Injector, classConstructor: Class, dependency: InjectOptions, self?: any): any; static resolveAllDependencies(injector: Injector, classConstructor: Class, dependencies: InjectOptions[], self?: T): [number, any][]; static getConstructorDependencies(classConstructor: Class): InjectOptions[]; static getMemberDependencies(classConstructor: Class, member: string | symbol): InjectOptions[]; static mixArguments(dependencies: [number, any][], inputArgs: any[]): any[]; static resolve(injector: Injector, objectClass: Class, method: string | symbol, manualArgs: any[], self?: T): any[]; static call(injector: Injector, objectClass: T, method: M, manualArgs: any[]): T[M] extends ((...args: any[]) => infer R) ? R : any; static call(injector: Injector, objectClass: Class, method: null | undefined, manualArgs: any[]): T; }