import { ServiceIdentifier } from '@inversifyjs/common';
import { BindingScope, GetAllOptions, GetOptions, GetPlanOptions, OptionalGetOptions, PlanResult } from '@inversifyjs/core';
import { PlanParamsOperationsManager } from './PlanParamsOperationsManager';
import { ServiceReferenceManager } from './ServiceReferenceManager';
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