import { InjectionToken } from '@glandjs/common';
import { Constructor } from '@medishn/toolkit';
import { InstanceWrapper } from './instance-wrapper';
export declare class Module {
    readonly token: string;
    readonly metatype: Constructor;
    readonly imports: Set<Module>;
    readonly controllers: Map<InjectionToken, InstanceWrapper<any>>;
    readonly channels: Map<InjectionToken, InstanceWrapper<any>>;
    constructor(token: string, metatype: Constructor);
    addImports(imports: Module[]): void;
    addController(controller: Constructor, instance?: any): void;
    addChannel(channel: Constructor, instance?: any): void;
}
