import { EnvironmentOptions } from "vitest/node";
import { H3Event } from "h3";
import { H3Event as H3Event$1 } from "h3-next";
import { Environment } from "vitest/environments";
import { $Fetch } from "nitropack";
//#region src/environments/vitest/index.d.ts
declare const _default: Environment;
//#endregion
//#region src/environments/vitest/types.d.ts
type NuxtBuiltinEnvironment = 'happy-dom' | 'jsdom';
interface GenericAppUse {
  (route: string, handler: (event: H3Event$1 | H3Event) => unknown, options?: {
    match: (...args: [string, H3Event | undefined] | [H3Event$1]) => boolean;
  }): void;
  (handler: (event: H3Event$1 | H3Event) => unknown, options?: {
    match: (...args: [string, H3Event | undefined] | [H3Event$1]) => boolean;
  }): void;
}
interface GenericApp {
  use: GenericAppUse;
}
interface NuxtWindow extends Window {
  __app?: GenericApp;
  __registry: Set<string>;
  __NUXT_VITEST_ENVIRONMENT__?: boolean;
  __NUXT__: Record<string, unknown>;
  $fetch: $Fetch;
  fetch: ((input: RequestInfo | URL, init?: RequestInit | undefined) => Promise<Response>);
  IntersectionObserver: unknown;
  Headers: typeof Headers;
}
interface EnvironmentNuxtOptions {
  jsdom?: EnvironmentOptions['jsdom'];
  happyDom?: EnvironmentOptions['happyDOM'];
}
type EnvironmentNuxt = (global: typeof globalThis, options: EnvironmentNuxtOptions) => Promise<{
  window: NuxtWindow;
  teardown(): void;
}>;
//#endregion
export { type EnvironmentNuxt, type EnvironmentNuxtOptions, type GenericApp, type NuxtBuiltinEnvironment, type NuxtWindow, _default as default };