import type { interfaces } from 'inversify';
import { Container } from 'inversify';
import { Syringe } from '../core';
import type { InversifyContext } from './inversify-protocol';
export declare function bindSingleton<T>(toBind: interfaces.BindingInSyntax<T>): interfaces.BindingWhenOnSyntax<T>;
export declare function bindTransient<T>(toBind: interfaces.BindingInSyntax<T>): interfaces.BindingWhenOnSyntax<T>;
export declare function bindLifecycle<T>(toBind: interfaces.BindingInSyntax<T>, option: Syringe.FormattedInjectOption<T>): interfaces.BindingWhenOnSyntax<T>;
export declare function bindNamed<T>(toBind: interfaces.BindingWhenOnSyntax<T>, named: Syringe.Named): void;
export declare function bindGeneralToken<T>(token: interfaces.ServiceIdentifier<T>, ictx: InversifyContext): interfaces.BindingToSyntax<T>;
export declare function bindMonoToken<T>(token: interfaces.ServiceIdentifier<T>, ictx: InversifyContext): interfaces.BindingToSyntax<T>;
export declare function namedToIdentifier(named: Syringe.Named): string | symbol;
export declare function tokenToIdentifier<T = any>(token: Syringe.Token<T>): interfaces.ServiceIdentifier<T>;
export declare const GlobalContainer: Container;
export * from './inversify-protocol';
//# sourceMappingURL=index.d.ts.map