/** Defines the loader which is passed into the main method of an activity pack. */
export interface Loader {
    (path: string, require: Function, callback?: Function): PromiseLike<{}>;
}
/** Defines the module which may contain a main method. */
export interface Module {
    main?(load: Loader, options: {}, prefix: string): PromiseLike<{}> | {};
}
/** Defines the concept of a global scope. */
export interface Global {
    /** RequireJS compatible define method. */
    define: Function;
    /** RequireJS compatible require method. */
    require: Function;
    /** A+ Promise compatible class. */
    Promise: PromiseConstructor;
}
/** Exposes the global object. */
export declare const global: Global;
/**
 * Loads a module using the base module loader.
 * WARNING: This function is passed to legacy activity packs as a parameter.
 *          Changes to the parameters could introduce bugs.
 * @param path The path to load.
 * @param require The require method to use.
 * @param callback The callback to invoke.
 */
export declare function load(path: string, require?: Function, callback?: Function): Promise<Module>;
/**
 * Dynamically adds a unique module name to the require paths
 * for the given url, so that dependencies can be loaded
 * from a separate scope.
 * @param url The url of an external module.
 */
export declare function registerModuleName(url: string): any;
/**
 * Performs module loading.
 * @param path The path to load (not a URL).
 * @param options The options to send.
 * @param prefix The prefix as it is understood.
 */
export declare function importModule(path: string, options: {}, prefix?: string): Promise<{}>;
