/// <reference types="node" />
import { Module } from './Module';
import { Plugin } from './type/context';
import { logconfig } from './plugins/log';
export declare namespace Nana {
    /**
     * # Nanasaki
     * ^o^
     *
     * @export
     * @param {Module[]} mods
     * @param {(currentMod: Module, pathFromRoot: string) => void} callback
     */
    function love(mods: Module[], callback: (currentMod: Module, pathFromRoot: string) => void): typeof Nana;
    /**
     * use
     *
     * @export
     * @template T
     * @param {Plugin<T>} obj
     */
    function use<T>(obj: Plugin<T>): typeof Nana;
    /**
     * watch
     *
     * @export
     * @param {logconfig} config
     * @returns
     */
    function watch(config: logconfig): typeof Nana;
    /**
     * useModules
     *
     * @export
     * @param {Module[]} mods
     */
    function useModules(mods: Module[]): typeof Nana;
    /**
     * callback
     *
     * @export
     * @returns
     */
    function callback(): import("http").RequestListener;
    /**
     * server
     *
     * @export
     * @param {Module[]} mods
     * @returns
     */
    function server(mods: Module[]): import("http").Server;
    /**
     * fileServer
     *
     * @export
     * @returns
     */
    function fileServer(): import("http").Server;
}
