import { type ServiceIdentifier } from '@inversifyjs/common';
import { type BindingScope, type DeactivationParams } from '@inversifyjs/core';
import { type BindToFluentSyntax } from '../../binding/models/BindingFluentSyntax.js';
import { type BindingIdentifier } from '../../binding/models/BindingIdentifier.js';
import { type IsBoundOptions } from '../models/isBoundOptions.js';
import { type PlanResultCacheManager } from './PlanResultCacheManager.js';
import { type ServiceReferenceManager } from './ServiceReferenceManager.js';
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;
    rebindAsync<T>(serviceIdentifier: ServiceIdentifier<T>): Promise<BindToFluentSyntax<T>>;
    rebind<T>(serviceIdentifier: ServiceIdentifier<T>): BindToFluentSyntax<T>;
    unbindAsync(identifier: BindingIdentifier | ServiceIdentifier): Promise<void>;
    unbindAllAsync(): Promise<void>;
    unbindAll(): void;
    unbind(identifier: BindingIdentifier | ServiceIdentifier): void;
}
//# sourceMappingURL=BindingManager.d.ts.map