// Type definitions for inversify-binding-decorators 1.0.0 // Project: https://github.com/inversify/inversify-binding-decorators // Definitions by: inversify // Definitions: https://github.com/borisyankov/DefinitelyTyped declare namespace inversifyBindingDecorators { namespace interfaces { export interface ProvideInSyntax extends ProvideDoneSyntax { inSingletonScope(): ProvideWhenOnSyntax; } export interface ProvideDoneSyntax { done(): (target: any) => any; } export interface ProvideOnSyntax extends ProvideDoneSyntax { onActivation(fn: (context: inversify.interfaces.Context, injectable: T) => T): ProvideWhenSyntax; } export interface ProvideInWhenOnSyntax extends ProvideInSyntax, ProvideWhenSyntax, ProvideOnSyntax {} export interface ProvideWhenOnSyntax extends ProvideWhenSyntax, ProvideOnSyntax {} export interface ProvideWhenSyntax extends ProvideDoneSyntax { when(constraint: (request: inversify.interfaces.Request) => boolean): ProvideOnSyntax; whenTargetNamed(name: string): ProvideOnSyntax; whenTargetTagged(tag: string, value: any): ProvideOnSyntax; whenInjectedInto(parent: (Function|string)): ProvideOnSyntax; whenParentNamed(name: string): ProvideOnSyntax; whenParentTagged(tag: string, value: any): ProvideOnSyntax; whenAnyAncestorIs(ancestor: (Function|string)): ProvideOnSyntax; whenNoAncestorIs(ancestor: (Function|string)): ProvideOnSyntax; whenAnyAncestorNamed(name: string): ProvideOnSyntax; whenAnyAncestorTagged(tag: string, value: any): ProvideOnSyntax; whenNoAncestorNamed(name: string): ProvideOnSyntax; whenNoAncestorTagged(tag: string, value: any): ProvideOnSyntax; whenAnyAncestorMatches(constraint: (request: inversify.interfaces.Request) => boolean): ProvideOnSyntax; whenNoAncestorMatches(constraint: (request: inversify.interfaces.Request) => boolean): ProvideOnSyntax; } } export function autoProvide(kernel: inversify.interfaces.Kernel, ...modules: any[]): void; export function makeProvideDecorator(kernel: inversify.interfaces.Kernel): (serviceIdentifier: inversify.interfaces.ServiceIdentifier) => (target: any) => any; export function makeFluentProvideDecorator(kernel: inversify.interfaces.Kernel): (serviceIdentifier: inversify.interfaces.ServiceIdentifier) => interfaces.ProvideInWhenOnSyntax; } declare module "inversify-binding-decorators" { export = inversifyBindingDecorators; }