import { type ServiceIdentifier } from '@inversifyjs/common';
import { type BindingScope, type GetAllOptions, type GetOptions, type GetPlanOptions, type OptionalGetOptions, type PlanResult } from '@inversifyjs/core';
import { type PlanParamsOperationsManager } from './PlanParamsOperationsManager.js';
import { type ServiceReferenceManager } from './ServiceReferenceManager.js';
export declare class ServiceResolutionManager {
    #private;
    constructor(planParamsOperationsManager: PlanParamsOperationsManager, serviceReferenceManager: ServiceReferenceManager, autobind: boolean, defaultScope: BindingScope);
    get<T>(serviceIdentifier: ServiceIdentifier<T>, options: OptionalGetOptions): T | undefined;
    get<T>(serviceIdentifier: ServiceIdentifier<T>, options?: GetOptions): T;
    getAll<T>(serviceIdentifier: ServiceIdentifier<T>, options?: GetAllOptions): T[];
    getAllAsync<T>(serviceIdentifier: ServiceIdentifier<T>, options?: GetAllOptions): Promise<T[]>;
    getAsync<T>(serviceIdentifier: ServiceIdentifier<T>, options: OptionalGetOptions): Promise<T | undefined>;
    getAsync<T>(serviceIdentifier: ServiceIdentifier<T>, options?: GetOptions): Promise<T>;
    onPlan(handler: (options: GetPlanOptions, result: PlanResult) => void): void;
}
//# sourceMappingURL=ServiceResolutionManager.d.ts.map