import { PluginOption } from "vite";

//#region packages/core/src/index.d.ts
interface VueInspectorClient {
  enabled: boolean;
  position: {
    x: number;
    y: number;
  };
  linkParams: {
    file: string;
    line: number;
    column: number;
  };
  enable: () => void;
  disable: () => void;
  toggleEnabled: () => void;
  onEnabled: () => void;
  onDisabled: () => void;
  openInEditor: (url: URL) => Promise<unknown>;
  onUpdated: () => void;
}
interface VitePluginInspectorOptions {
  /**
   * Default enable state
   * @default false
   */
  enabled?: boolean;
  /**
   * Define a combo key to toggle inspector
   * @default 'control-shift' on windows, 'meta-shift' on other os
   *
   * any number of modifiers `control` `shift` `alt` `meta` followed by zero or one regular key, separated by -
   * examples: control-shift, control-o, control-alt-s  meta-x control-meta
   * Some keys have native behavior (e.g. alt-s opens history menu on firefox).
   * To avoid conflicts or accidentally typing into inputs, modifier only combinations are recommended.
   * You can also disable it by setting `false`.
   */
  toggleComboKey?: string | false;
  /**
   * Toggle button visibility
   * @default 'active'
   */
  toggleButtonVisibility?: 'always' | 'active' | 'never';
  /**
   * Toggle button display position
   * @default top-right
   */
  toggleButtonPos?: 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left';
  /**
   * append an import to the module id ending with `appendTo` instead of adding a script into body
   * useful for frameworks that do not support transformIndexHtml hook (e.g. Nuxt3)
   *
   * WARNING: only set this if you know exactly what it does.
   */
  appendTo?: string | RegExp;
  /**
   * lazy load inspector times (ms)
   * @default false
   */
  lazyLoad?: number | false;
  /**
   * disable inspector on editor open
   * @default false
   */
  disableInspectorOnEditorOpen?: boolean;
  /**
   * Target editor when open in editor (v5.1.0+)
   *
   * @default process.env.LAUNCH_EDITOR ?? code (Visual Studio Code)
   */
  launchEditor?: string;
  /**
   * Disable animation/transition, will auto disable when `prefers-reduced-motion` is set
   * @default false
   */
  reduceMotion?: boolean;
  /**
   * Register Vue Inspector as a Vite DevTools dock action.
   *
   * @default true
   */
  viteDevtools?: boolean;
}
declare const DEFAULT_INSPECTOR_OPTIONS: VitePluginInspectorOptions;
declare function VitePluginInspector(options?: VitePluginInspectorOptions): PluginOption;
//#endregion
export { DEFAULT_INSPECTOR_OPTIONS, VitePluginInspectorOptions, VueInspectorClient, VitePluginInspector as default };