import { ResolveFn } from "../plugins/resolve";
import { ResolvedConfig } from "../config";
import type { ExistingRawSourceMap, SourceMapInput } from "rollup";
import * as PostCss from "postcss";
export declare const CSS_MODULE_RE: RegExp;
export type CssUrlReplacer = (url: string, importer?: string) => string | Promise<string>;
export interface CSSAtImportResolvers {
    css: ResolveFn;
    sass: ResolveFn;
    less: ResolveFn;
}
export declare function compileCSS(id: string, code: string, config: ResolvedConfig, urlReplacer: CssUrlReplacer): Promise<{
    code: string;
    map?: SourceMapInput;
    ast?: PostCss.Result;
    modules?: Record<string, string>;
    deps?: Set<string>;
}>;
/**
 * 预处理语言
 */
declare const enum PREPROCESS_LAN {
    less = "less",
    sass = "sass",
    scss = "scss"
}
export declare function isPrePoscessor(lang: any): lang is PREPROCESS_LAN;
export declare function formatPostcssSourceMap(rawMap: ExistingRawSourceMap, file: string): Promise<ExistingRawSourceMap>;
export declare function minifyCss(css: string, config: ResolvedConfig): Promise<string>;
/**
 * 最终优化CSS，包含提升以及压缩
 * @param css
 * @param minify
 * @param config
 * @returns
 */
export declare function finalizeCss(css: string, minify: boolean, config: ResolvedConfig): Promise<string>;
export {};
