import { LoadedModules } from './loader';
import { IOptions } from './index';
declare type ModuleFunction = (require: any, exports: any, module: Module) => void;
export declare function defineModules(allModules: LoadedModules, opts: IOptions): {
    [id: string]: Module;
};
export declare class Module {
    id: string;
    url: string;
    exports: any;
    /**
     * The definition function of the module
     */
    factory: ModuleFunction;
    dependencies: {
        [requirePath: string]: Module;
    };
    constructor(id: string, url: string);
    execute(): any;
    require: (path: string) => any;
    /**
     * Register the module
     */
    defineModule(srcCode: string, defineFuncName: string, runtime: Window): void;
}
export declare function registerExtension(ext: string, transform: (srcCode: string) => string): void;
export {};
