import { logger } from "./logger";
import { ServerOptions } from "./server";
import { Plugin } from "./plugin";
import { BuildOptions } from "./build";
import { InternalResolveOptions, ResolveFn, ResolveOptions } from "./plugins/resolve";
import { DepHandler } from "./deps";
import { PackageCache } from "./package";
import { CSSOptions } from "./plugins/css";
export declare const DEFAULT_SERVER_PORT = 5858;
export declare const DEFAULT_WS_PORT = 25679;
export declare const FILE_SUFFIX = "joker";
export declare const ID_PREFIX = "/@id/";
export declare const FS_PREFIX = "/@fs/";
export declare const NULL_BYTE_PLACHOLDER = "__J00J__";
export declare const CLIENT_PLUBLIC_PATH = "/@joker.front/client";
export declare const INTERNAL_REQUEST: string[];
export declare const CLIENT_ENTRY: string;
export declare const CLIENT_DIR: string;
export declare const version: any;
export declare const ESBUILD_MODULES_TARGET: string[];
export declare const DEFAULT_EXTENSIONS: string[];
export declare const DEFAULT_MAIN_FIELDS: string[];
export interface Config {
    /**
     * 项目文根
     * @default process.cwd()
     */
    root?: string;
    /**
     * 输出运行时公共文根
     * @default '/'
     */
    base?: string;
    /**
     * 运行模式
     * server服务一定是起服务，不做构建
     * build 只做构建，一定不做服务代理
     * @default 'server'
     */
    command?: "server" | "build";
    /**
     * 对应process.env.NODE_ENV
     * @default 'development'
     */
    mode?: string;
    /**
     * 开发模式下的Server配置
     */
    server?: ServerOptions;
    /**
     * 构建配置（Server+Build模式下文件构建配置）
     */
    build?: BuildOptions;
    /**
     * 定义缓存目录，存放dep依赖缓存等文件
     * 默认为package.json所在文件夹下的node_modules/.joker
     *
     * @default 'node_modules/.joker'
     */
    cacheDir?: string;
    /**
     * 默认文件夹，可以配置static静态文件、公共脚本、公共资源等路径文件夹
     * 此文件内的资源不会被转换编译，仅在build时复制到dist目录下
     * 配置成false代表不启用public
     *
     * @default 'public'
     */
    publicDir?: string | false;
    /**
     * 日志输出等级
     * @default 'info'
     */
    logLeve?: logger.leve;
    /**
     * 是否采用esbuild
     * @default 'true'
     */
    esbuild?: boolean;
    /**
     * 需要额外处理的资源，默认已经支持大部分资源格式
     */
    assetsInclude?: string[];
    /**
     * 插件
     */
    plugins?: Plugin[] | Array<Plugin[]>;
    /**
     * 配置解析器
     */
    resolve?: ResolveOptions;
    /**
     * 全局定义，在开发侧通过import.meta.define.xxx进行使用
     */
    define?: Record<string, any>;
    /**
     * CSS配置
     */
    css?: CSSOptions;
}
export interface ResolvedConfig extends Required<Omit<Config, "plugins">> {
    createResolver: (option: Partial<InternalResolveOptions>) => ResolveFn;
    /**
     * 引用管理
     */
    depHandler: DepHandler;
    /**
     * package.json 解析缓存
     */
    packageCache: PackageCache;
    build: Required<BuildOptions>;
    configPath?: string;
    /**
     * packageJson 文件地址
     */
    pkgPath?: string;
    plugins: Plugin[];
}
export declare function resolveCliConfig(cliConfig: Config, command: Config["command"], configPath?: string | false): Promise<ResolvedConfig>;
export declare function getConfigHash(config: ResolvedConfig): string;
export declare const ASSET_TYPES: string[];
export declare function getClinetImport(config: ResolvedConfig): string;
