import { DynamicModule, InjectionToken } from '@glandjs/common';
import { Module } from '../module';
import { ModulesContainer } from './module-container';
import { Constructor, type Logger } from '@medishn/toolkit';
export declare class Container {
    private readonly _modules;
    private readonly instances;
    private readonly graph;
    private logger?;
    constructor(logger?: Logger);
    get modules(): ModulesContainer;
    register(module: Constructor | DynamicModule, parentModuleId?: string): Promise<Module>;
    private normalizeModule;
    private getId;
    private createModule;
    private processImports;
    private processControllers;
    private processChannels;
    resolve<T>(token: InjectionToken<T>): T;
}
