import { InputOption, RollupOptions, ExternalOption } from 'rollup';
import { RollupAliasOptions } from '@rollup/plugin-alias';
import { RollupCommonJSOptions } from '@rollup/plugin-commonjs';
import { RollupNodeResolveOptions } from '@rollup/plugin-node-resolve';
import swc__default from '@rollup/plugin-swc';
import { Options } from 'rollup-plugin-dts';
import { FilterPattern } from '@rollup/pluginutils';
import { RollupTypescriptOptions } from '@rollup/plugin-typescript';
import vue__default from 'unplugin-vue/rollup';
import esbuild__default from 'rollup-plugin-esbuild';
import { RollupBabelInputPluginOptions, RollupBabelOutputPluginOptions } from '@rollup/plugin-babel';
import terser from '@rollup/plugin-terser';
export { presetApp } from './preset-app.cjs';
export { presetLib } from './preset-lib.cjs';

declare function writeFile(path: string, content: string): void;
interface INaiableRollupCompileTypeScriptConfig {
    /** Use `@rollup/plugin-typescript`! */
    type: "@rollup/plugin-typescript";
    /** TypeScript Options. */
    typescript?: RollupTypescriptOptions;
}
interface INaiableRollupCompileSWCConfig {
    /** Use `@rollup/plugin-swc`! */
    type: "@rollup/plugin-swc";
    /** SWC Options */
    swc?: Parameters<typeof swc__default>[0];
    /** Include and exclude files. */
    include?: FilterPattern;
    /** Include and exclude files. */
    exclude?: FilterPattern;
}
interface INaiableRollupComplieEsbuildConfig {
    /** Use `rollup-plugin-esbuild`! */
    type: "rollup-plugin-esbuild";
    /** Esbuild Options. */
    esbuild?: Parameters<typeof esbuild__default>[0];
}
type INaiableRollupCompileConfig = INaiableRollupCompileTypeScriptConfig | INaiableRollupCompileSWCConfig | INaiableRollupComplieEsbuildConfig;
interface INaiableBabelOptions {
    inputOptions?: RollupBabelInputPluginOptions | false;
    outputOptions?: RollupBabelOutputPluginOptions | false;
}
interface INaiableRollupConfig {
    /** The input file. @default 'src/index.ts' */
    input?: InputOption;
    /** The output format. @default ['cjs', 'esm'] */
    output?: ("cjs" | "esm")[];
    /** The output directory. @default 'dist' */
    dir?: string;
    /** The `@rollup/plugin-alias` options. Default alias `@` to `src`. */
    alias?: RollupAliasOptions | false;
    /** The `@rollup/plugin-commonjs` options. */
    commonjs?: RollupCommonJSOptions | false;
    /** The `@rollup/plugin-node-resolve` options. Default extensions include `.ts`, `.tsx`, `.cjs`, `.jsx`, `.mts`, `.cts`. */
    resolve?: RollupNodeResolveOptions | false;
    /** Use `@rollup/plugin-typescript` or `@rollup/plugin-swc` or `rollup-plugin-esbuild` ? */
    compile?: INaiableRollupCompileConfig | false;
    /** The `d.ts` build options. */
    dts?: Options | false;
    /** The `unplugin-vue` options. */
    vue?: Parameters<typeof vue__default>[0] | false;
    /** The `@rollup/plugin-babel` options. */
    babel?: INaiableBabelOptions | false;
    /** The `@rollup/plugin-terser` options. */
    terser?: Parameters<typeof terser>[0] | false;
    /** Use strict. @default true */
    strict?: boolean;
    /** Source map. @default inline */
    sourcemap?: boolean | "inline" | "hidden";
    /** Free override rollup config */
    overrides?: {
        /** The `Build` options. */
        buildOptions?: RollupOptions;
        /** The `d.ts` build options. */
        dtsOptions?: RollupOptions;
    };
    /** Generate a snapshot json file when builded. */
    snapshot?: {
        /** Enable snapshot. @default false */
        enable: boolean;
        /** The snapshot file path. @default `rollup.config.snapshot-${new Date().toISOString()}.json` */
        path?: string;
    };
    /** Preserve modules. @default true */
    preserveModules?: boolean;
    /** External dependencies. @default [/node_modules/] */
    external?: ExternalOption;
}
declare function naiup(config?: INaiableRollupConfig): RollupOptions[];

export { type INaiableBabelOptions, type INaiableRollupCompileConfig, type INaiableRollupCompileSWCConfig, type INaiableRollupCompileTypeScriptConfig, type INaiableRollupComplieEsbuildConfig, type INaiableRollupConfig, naiup as default, writeFile };
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC5jdHMiLCJzb3VyY2VzIjpbXSwic291cmNlc0NvbnRlbnQiOltdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=
