import { r as OptionMap, t as AddonMap } from "../engine-DcLtEbd7.mjs";
import * as _$_playwright_test0 from "@playwright/test";
import { Page } from "@playwright/test";
import * as _$vitest from "vitest";
import { TestProject } from "vitest/node";

//#region src/testing.d.ts
type ProjectVariant = "kit-js" | "kit-ts" | "vite-js" | "vite-ts";
declare const variants: ProjectVariant[];
type CreateProject = (options: {
  testId: string;
  variant: ProjectVariant; /** @default true */
  clean?: boolean;
}) => string;
declare module "vitest" {
  interface ProvidedContext {
    testDir: string;
    templatesDir: string;
    variants: ProjectVariant[];
  }
}
declare function setupGlobal({
  TEST_DIR,
  pre,
  post
}: {
  TEST_DIR: string;
  pre?: () => Promise<void>;
  post?: () => Promise<void>;
}): ({
  provide
}: TestProject) => Promise<() => Promise<void>>;
type Fixtures = {
  page: Page;
  cwd(addonTestCase: AddonTestCase<any>): string;
};
type AddonTestCase<Addons extends AddonMap> = {
  variant: ProjectVariant;
  kind: {
    type: string;
    options: OptionMap<Addons>;
  };
};
type SetupTestOptions<Addons extends AddonMap> = {
  kinds: Array<AddonTestCase<Addons>["kind"]>;
  filter?: (addonTestCase: AddonTestCase<Addons>) => boolean;
  browser?: boolean;
  preAdd?: (o: {
    addonTestCase: AddonTestCase<Addons>;
    cwd: string;
  }) => Promise<void> | void;
};
type PrepareServerOptions = {
  cwd: string;
  page: Page;
  buildCommand?: string;
  previewCommand?: string;
};
type PrepareServerReturn = {
  url: string;
  close: () => Promise<void>;
};
declare function prepareServer({
  cwd,
  page,
  buildCommand,
  previewCommand
}: PrepareServerOptions): Promise<PrepareServerReturn>;
type PlaywrightContext = Pick<typeof _$_playwright_test0, "chromium">;
type VitestContext = Pick<typeof _$vitest, "inject" | "test" | "beforeAll" | "beforeEach">;
declare function createSetupTest(vitest: VitestContext, playwright?: PlaywrightContext): <Addons extends AddonMap>(addons: Addons, options?: SetupTestOptions<Addons>) => {
  test: _$vitest.TestAPI<Fixtures>;
  testCases: Array<AddonTestCase<AddonMap>>;
  prepareServer: typeof prepareServer;
};
//#endregion
export { AddonTestCase, CreateProject, Fixtures, PlaywrightContext, PrepareServerOptions, PrepareServerReturn, ProjectVariant, SetupTestOptions, VitestContext, createSetupTest, prepareServer, setupGlobal, variants };