import { WorkerOutput } from "@webda/workout";
import { Application, CachedModule, Configuration, GitInformation, ProjectInformation } from "./application.js";
/**
 * Empty git information
 */
export declare const EmptyGitInformation: GitInformation;
/**
 * An unpacked application load dynamically all webda.module.json
 * And load also all the package description
 *
 * The normal Application is designed to load all this information from
 * the cachedModule to avoid any unecessary action within a production environment
 */
export declare class UnpackedApplication extends Application {
    constructor(file: string, logger?: WorkerOutput);
    /**
     * Load full configuration
     *
     * webda.config.json and complete the cachedModule
     *
     * @param file
     * @returns
     */
    loadConfiguration(file: string): void;
    /**
     * Compute short ids
     * @returns
     */
    load(): Promise<this>;
    /**
     * Add Moddas, Models and Deployers definitions
     * It also add the project metadata
     *
     * @param configuration
     * @returns
     */
    completeConfiguration(configuration: Configuration): Configuration;
    /**
     * @returns empty git information
     */
    getGitInformation(_name?: string, _version?: string): GitInformation;
    /**
     * Check package.json
     */
    loadProjectInformation(): ProjectInformation;
    /**
     * Store the current module
     * @returns
     */
    getModulesCache(): any;
    /**
     * Search the node_modules structure for webda.module.json files
     *
     * @param path
     * @returns
     */
    static findModulesFiles(path: string): string[];
    /**
     * Load all imported modules and current module
     * It will compile module
     * Generate the current module file
     * Load any imported webda.module.json
     */
    findModules(module: CachedModule): string[];
    /**
     * Only allow local and core module and sample-app
     */
    filterModule(_filename: string): boolean;
    /**
     * Load a webda.module.json file
     * Resolve the linked file to current application
     *
     * @param moduleFile to load
     * @returns
     */
    loadWebdaModule(moduleFile: string): CachedModule;
    /**
     * Merge all modules into one cached module
     *
     * @param module
     */
    mergeModules(configuration: Configuration): void;
}
