import { ServiceIdentifier } from '@inversifyjs/common';
import { BindingScope, DeactivationParams } from '@inversifyjs/core';
import { BindToFluentSyntax } from '../../binding/models/BindingFluentSyntax';
import { BindingIdentifier } from '../../binding/models/BindingIdentifier';
import { IsBoundOptions } from '../models/isBoundOptions';
import { PlanResultCacheManager } from './PlanResultCacheManager';
import { ServiceReferenceManager } from './ServiceReferenceManager';
export declare class BindingManager {
    #private;
    constructor(deactivationParams: DeactivationParams, defaultScope: BindingScope, planResultCacheManager: PlanResultCacheManager, serviceReferenceManager: ServiceReferenceManager);
    bind<T>(serviceIdentifier: ServiceIdentifier<T>): BindToFluentSyntax<T>;
    isBound(serviceIdentifier: ServiceIdentifier, options?: IsBoundOptions): boolean;
    isCurrentBound(serviceIdentifier: ServiceIdentifier, options?: IsBoundOptions): boolean;
    rebind<T>(serviceIdentifier: ServiceIdentifier<T>): Promise<BindToFluentSyntax<T>>;
    rebindSync<T>(serviceIdentifier: ServiceIdentifier<T>): BindToFluentSyntax<T>;
    unbind(identifier: BindingIdentifier | ServiceIdentifier): Promise<void>;
    unbindAll(): Promise<void>;
    unbindAllSync(): void;
    unbindSync(identifier: BindingIdentifier | ServiceIdentifier): void;
}
//# sourceMappingURL=BindingManager.d.ts.map