import type { InlineModuleReferenceConfig, ModuleConfig, ModuleReference, ModuleReferenceConfig, NpmModuleReferenceConfig, ReadModuleReferenceOptions } from '@eggjs/tegg-types';
export declare class ModuleReferenceConfigHelp {
    static isInlineModuleReference(moduleReference: ModuleReferenceConfig): moduleReference is InlineModuleReferenceConfig;
    static isNpmModuleReference(moduleReference: ModuleReferenceConfig): moduleReference is NpmModuleReferenceConfig;
}
export declare class ModuleConfigUtil {
    #private;
    static configNames: string[] | undefined;
    static setConfigNames(configNames: string[] | undefined): void;
    static readModuleReference(baseDir: string, options?: ReadModuleReferenceOptions): readonly ModuleReference[];
    private static readModuleReferenceFromModuleJson;
    private static readModuleReferenceFromScan;
    static readModuleFromNodeModules(baseDir: string): ModuleReference[];
    static resolveModuleDir(moduleDir: string, baseDir?: string): string;
    private static getModuleName;
    static readModuleName(baseDir: string, moduleDir: string): Promise<string>;
    static readModuleNameSync(moduleDir: string, baseDir?: string): string;
    static loadModuleConfig(moduleDir: string, baseDir?: string, env?: string): Promise<ModuleConfig>;
    static loadModuleConfigSync(moduleDir: string, baseDir?: string, env?: string): ModuleConfig;
}
