import { Token } from './Token';
import { ObjectType } from './types/ObjectType';
import { ServiceIdentifier } from './types/ServiceIdentifier';
import { ServiceMetadata } from './types/ServiceMetadata';
export declare class ContainerInstance {
    id: any;
    private services;
    constructor(id: any);
    has<T>(type: ObjectType<T>): boolean;
    has<T>(id: string): boolean;
    has<T>(id: Token<T>): boolean;
    get<T>(type: ObjectType<T>): T;
    get<T>(id: string): T;
    get<T>(id: Token<T>): T;
    get<T>(id: {
        service: T;
    }): T;
    getMany<T>(id: string): T[];
    getMany<T>(id: Token<T>): T[];
    set<T, K extends keyof T>(service: ServiceMetadata<T, K>): this;
    set(type: Function, value: any): this;
    set(name: string, value: any): this;
    set(token: Token<any>, value: any): this;
    set(token: ServiceIdentifier, value: any): this;
    set<T, K extends keyof T>(values: ServiceMetadata<T, K>[]): this;
    remove(...ids: ServiceIdentifier[]): this;
    reset(): this;
    private filterServices;
    private findService;
    private getServiceValue;
    private initializeParams;
    private isTypePrimitive;
    private applyPropertyHandlers;
}
