import { TSConfig } from 'pkg-types'; import { CommonOptions } from 'esbuild'; import { AcceptedPlugin, ProcessOptions } from 'postcss'; import { Options } from 'postcss-nested'; import { Options as Options$1 } from 'autoprefixer'; import { Options as Options$2 } from 'cssnano'; import { GlobOptions } from 'tinyglobby'; declare const loaders: { js: Loader; vue: Loader; sass: Loader; postcss: Loader; }; type LoaderName = keyof typeof loaders; interface InputFile { path: string; extension: string; srcPath?: string; getContents: () => Promise | string; } interface OutputFile { /** * relative to distDir */ path: string; srcPath?: string; extension?: string; contents?: string; declaration?: boolean; errors?: Error[]; raw?: boolean; skip?: boolean; } type LoaderResult = OutputFile[] | undefined; type LoadFile = (input: InputFile) => LoaderResult | Promise; interface LoaderOptions { ext?: "js" | "mjs" | "cjs" | "ts" | "mts" | "cts"; format?: "cjs" | "esm"; declaration?: boolean; esbuild?: CommonOptions; postcss?: false | { nested?: false | Options; autoprefixer?: false | Options$1; cssnano?: false | Options$2; plugins?: AcceptedPlugin[]; processOptions?: Omit; }; } interface LoaderContext { loadFile: LoadFile; options: LoaderOptions; } type Loader = (input: InputFile, context: LoaderContext) => LoaderResult | Promise; interface MkdistOptions extends LoaderOptions { rootDir?: string; srcDir?: string; pattern?: string | string[]; globOptions?: GlobOptions; distDir?: string; cleanDist?: boolean; loaders?: (LoaderName | Loader)[]; addRelativeDeclarationExtensions?: boolean; typescript?: { compilerOptions?: TSConfig["compilerOptions"]; }; } declare function mkdist(options?: MkdistOptions): Promise<{ errors: { filename: string; errors: TypeError[]; }[]; writtenFiles: string[]; }>; export { mkdist }; export type { MkdistOptions };