import { RuleSetUseItem, LoaderContext } from 'webpack';
import { ParsedArgs } from 'minimist';
/** https://github.com/webpack-contrib/css-loader/blob/master/test/validate-options.test.js */
export interface CssOptions {
    importLoaders?: number;
    import?: boolean | {
        filter: (url: string, media: unknown, resourcePath: string) => boolean;
    };
    sourceMap?: boolean;
    esModule?: boolean;
    exportType?: 'array' | 'string' | 'css-style-sheet';
    url?: boolean | {
        filter: (url: string, resourcePath: string) => boolean;
    };
    modules?: boolean | 'global' | 'local' | 'pure' | 'icss' | {
        mode?: 'global' | 'local' | 'pure' | 'icss' | (() => 'local');
        localIdentName?: string;
        localIdentContext?: string;
        localIdentHashSalt?: string;
        localIdentHashFunction?: string;
        localIdentHashDigest?: string;
        localIdentHashDigestLength?: string;
        localIdentRegExp?: string | RegExp;
        exportGlobals?: boolean;
        namedExport?: boolean;
        exportOnlyLocals?: boolean;
        exportLocalsConvention?: 'asIs' | 'camelCase' | 'camelCaseOnly' | 'dashes' | 'dashesOnly' | ((localName: string) => string);
        auto?: boolean | RegExp | (() => boolean);
        getLocalIdent?: (loaderContext: LoaderContext<unknown>, localIdentName: string, localName: string) => string;
    };
}
export declare type StyleLoadersOptions<T> = ParsedArgs & {
    isEnvDevelopment: boolean;
    isEnvProduction: boolean;
    shouldUseSourceMap: boolean;
    preProcessorOptions: T | {};
};
/**
 * 方法来源
 * https://github.com/facebook/create-react-app/blob/9673858a3715287c40aef9e800c431c7d45c05a2/packages/react-scripts/config/webpack.config.js#L118-L197
 */
export declare const getStyleLoaders: <T>(cssOptions: CssOptions, options: StyleLoadersOptions<T>, preProcessor: string) => RuleSetUseItem[];
