import { HotAPI } from "./HotAPI";
import { HotAsset } from "./HotAsset";
import { HotComponent, IHotComponent } from "./HotComponent";
import { HotStaq } from "./HotStaq";
/**
 * Load a module that contains the assets to load for the frontend.
 */
export declare class HotModule {
    /**
     * The name of the module.
     */
    name: string;
    /**
     * The list of NPM modules to import.
     */
    import?: string[];
    /**
     * The HTML files to load.
     */
    html?: (string | HotAsset)[];
    /**
     * The CSS files to load.
     */
    css?: (string | HotAsset)[];
    /**
     * The JS files to load.
     */
    js?: (string | HotAsset)[];
    /**
     * The exported component library that contains all the components to load.
     */
    componentLibrary?: string;
    /**
     * The components to load.
     */
    components?: (new (copy: IHotComponent | HotStaq, api?: HotAPI) => HotComponent)[];
    constructor(name: string);
    /**
     * Output CSS.
     */
    outputCSS(echoOut?: boolean): string;
    /**
     * Output JS.
     */
    outputJS(echoOut?: boolean): string;
    /**
     * Output a loaded HTML asset.
     */
    output(assetName: string, args?: any[]): Promise<void>;
    /**
     * Load HTML assets.
     */
    loadHTML(): Promise<void>;
    /**
     * Output components assets.
     */
    outputComponents(echoOut?: boolean): string;
    /**
     * Output an asset to HTML.
     */
    protected outputAsset(assetType: string, assets: (string | HotAsset)[], callback: (asset: HotAsset) => void): void;
}
//# sourceMappingURL=HotModule.d.ts.map