import { OrNil } from "../utils/declaration";
import { SdinProject } from './project';
import { SdinAbstractModule, SdinAbstractModuleDatas, SdinAbstractModuleParams } from './abstract-module';
export type SdinFoundationModuleType = 'foundation';
export type SdinFoundationModuleMode = 'cjs' | 'esm';
export interface SdinFoundationModuleDatas extends SdinAbstractModuleDatas {
}
/**
 * Sdin 基础模块选项
 */
export interface SdinFoundationModuleParams extends SdinAbstractModuleParams<SdinFoundationModuleType, SdinFoundationModuleMode> {
    /** 模块构建模式（默认：cjs） */
    mode?: SdinFoundationModuleMode;
    /** 模块源码目录（默认：src，相对项目根目录而言） */
    src?: string;
    /** 模块目标目录（默认：tar/模式，相对项目根目录而言） */
    tar?: string;
    /** 包含的文件（相对模块源码目录而言） */
    includes?: OrNil<string>[];
    /** 不包含的文件（相对模块源码目录而言） */
    excludes?: OrNil<string>[];
    /** 压缩代码（默认：true） */
    minify?: boolean;
    /** 丑化代码（默认：true） */
    uglify?: boolean;
    /** 源代码映射（默认：压缩或丑化时启用） */
    sourceMap?: boolean;
    /** SASS 模块开关（默认：开启） */
    sassModule?: boolean;
    /** 混淆 CSS 类名（默认：开启） */
    mixinClass?: boolean;
    /** 在 JS 文件中引入转换后的 CSS 文件（SASS 模块启用时默认开启） */
    styleImports?: boolean;
}
/**
 * Sdin 基础模块配置
 */
export declare class SdinFoundationModule extends SdinAbstractModule<SdinFoundationModuleType, SdinFoundationModuleMode, SdinFoundationModuleParams, SdinFoundationModuleDatas> {
    /** 包含的文件 */
    readonly includes: string[];
    /** 不包含的文件 */
    readonly excludes: string[];
    /** 压缩代码 */
    readonly minify: boolean;
    /** 丑化代码 */
    readonly uglify: boolean;
    /** 源代码映射 */
    readonly sourceMap: boolean;
    /** SASS 模块开关 */
    readonly sassModule: boolean;
    /** 混淆 CSS 类名 */
    readonly mixinClass: boolean;
    /** 在 JS 文件中引入转换后的 CSS 文件 */
    readonly styleImports: boolean;
    /** 数据宏定义 */
    readonly datas: SdinFoundationModuleDatas;
    constructor(project: SdinProject, params: SdinFoundationModuleParams);
}
