import { ResolutionContext, ServiceIdentifier } from 'inversify';
import { TConstructor } from '../types/TConstructor';
import { TInputOptions } from '../types/options/TInputOptions';
import { IInversifyContainerFacade } from '../interfaces/container/IInversifyContainerFacade';
export declare class InversifyContainerFacade implements IInversifyContainerFacade {
    private readonly container;
    constructor();
    static getFactory<T extends string, U>(serviceIdentifier: ServiceIdentifier<U>): (context: ResolutionContext) => (bindingName: T) => U;
    static getCacheFactory<T extends string, U>(serviceIdentifier: ServiceIdentifier<U>): (context: ResolutionContext) => (bindingName: T) => U;
    static getConstructorFactory<T extends string, U>(serviceIdentifier: ServiceIdentifier<TConstructor<Record<string, any>[], U>>, ...dependencies: ServiceIdentifier<TConstructor<Record<string, any>[], U>>[]): (context: ResolutionContext) => (bindingName: T) => U;
    get<T>(serviceIdentifier: ServiceIdentifier<T>): T;
    getNamed<T>(serviceIdentifier: ServiceIdentifier<T>, named: string | number | symbol): T;
    load(sourceCode: string, sourceMap: string, options: TInputOptions): void;
    unload(): void;
}
