import { GlobOptions as GlobOptions$1 } from "tinyglobby";
import { InputOption, InputOptions, OutputAsset, OutputChunk, OutputOptions, RolldownOutput, RolldownPluginOption } from "rolldown";
import { InputOption as InputOption$1, InputOptions as InputOptions$1, InputPluginOption, OutputAsset as OutputAsset$1, OutputChunk as OutputChunk$1, OutputOptions as OutputOptions$1, Plugin, RollupOutput } from "rollup";
import { OutputFile } from "esbuild";
import { ExpectStatic } from "vitest";
import { RawVueCompilerOptions } from "@vue/language-core";
import { Plugin as Plugin$1 } from "ts-macro";
import { CompilerOptions, Program } from "typescript";

//#region src/fixture.d.ts
type SkipFn = (testName: string) => boolean | Promise<boolean>;
declare function testFixturesSkip(fn: SkipFn): void;
interface FixtureOptions {
  params?: [name: string, values?: any[]][];
  promise?: boolean;
  concurrent?: boolean;
  snapshot?: boolean;
}
type GlobOptions = GlobOptions$1 & {
  cwd?: string;
};
declare function testFixtures(globs: string | string[], exec: (args: Record<string, any>, id: string) => any, options?: GlobOptions & FixtureOptions): Promise<void>;
declare function testFixtures(files: Record<string, string>, exec: (args: Record<string, any>, id: string, code: string) => any, options?: FixtureOptions): Promise<void>;
//#endregion
//#region src/path.d.ts
declare function normalizePath(path: string): string;
declare function replacePath(source: string, search: string, replacement: string): string;
//#endregion
//#region src/rolldown.d.ts
declare function rolldownBuild(input: InputOption, plugins?: RolldownPluginOption, inputOptions?: InputOptions, outputOptions?: OutputOptions): Promise<{
  chunks: RolldownOutput["output"];
  snapshot: string;
}>;
//#endregion
//#region src/rollup.d.ts
declare function rollupBuild(input: InputOption$1, plugins?: InputPluginOption, inputOptions?: InputOptions$1, outputOptions?: OutputOptions$1): Promise<{
  chunks: RollupOutput["output"];
  snapshot: string;
}>;
declare const RollupToStringPlugin: () => Plugin;
declare const RollupEscapeNullCharacterPlugin: () => Plugin;
//#endregion
//#region src/snapshot.d.ts
declare function outputToSnapshot(chunks: (OutputChunk$1 | OutputAsset$1 | OutputChunk | OutputAsset | OutputFile)[]): string;
declare function expectFilesSnapshot(sourceDir: string, snapshotFile: string, {
  pattern,
  expect
}?: {
  pattern?: string;
  expect?: ExpectStatic;
}): Promise<{
  files: string[];
  fileMap: Record<string, string>;
  snapshot: string;
}>;
//#endregion
//#region src/string.d.ts
declare function removeSpaces(s: string): string;
//#endregion
//#region src/volar.d.ts
declare function createTsMacroProgram(rootNames: string[], plugins: Plugin$1[], compilerOptions?: CompilerOptions): Promise<Program>;
declare function createVueProgram(rootNames: string[], compilerOptions?: CompilerOptions, vueCompilerOptions?: RawVueCompilerOptions): Promise<Program>;
//#endregion
export { FixtureOptions, GlobOptions, RollupEscapeNullCharacterPlugin, RollupToStringPlugin, createTsMacroProgram, createVueProgram, expectFilesSnapshot, normalizePath, outputToSnapshot, removeSpaces, replacePath, rolldownBuild, rollupBuild, testFixtures, testFixturesSkip };