import { Plugin } from "vite";
//#region src/index.d.ts
interface HmrGateOptions {
  /** Use full-reload (true, default) vs granular per-module HMR (false). */
  fullReload?: boolean;
  /** Bundled dev only: ms the gate stays open after a flush so the client's
   * queued patch fetches drain. Default 1500. */
  drainMs?: number;
  /** Bundled dev only: max ms a patch response is parked before it
   * fail-opens. Default 240000. */
  maxHoldMs?: number;
  /** Bundled dev only: ms after server start during which full-reload frames
   * (Vite's restart resync) pass through live. Default 5000. */
  startupGraceMs?: number;
  /** Watcher events to intercept. Default: all three — a freeze must catch adds and
   * deletes, not just content changes (e.g. atomic writes / synced files surface as add/unlink). */
  events?: ("change" | "add" | "unlink")[];
  /** File path substrings that bypass the gate (always emitted immediately). */
  passthrough?: string[];
}
declare function hmrGatePlugin(options?: HmrGateOptions): Plugin;
//#endregion
export { HmrGateOptions, hmrGatePlugin };