import { Plugin } from 'vite';

/**
 * Configuration options for the MCP Inspector Vite plugin.
 */
interface MCPInspectorPluginOptions {
    /**
     * Server configuration for auto-connect.
     * If not provided, the inspector launches without a pre-configured server.
     */
    server?: {
        /**
         * Display name for the server in the UI
         */
        name: string;
        /**
         * HTTP URL of the MCP server
         */
        url: string;
        /**
         * Custom headers to send with requests
         */
        headers?: Record<string, string>;
        /**
         * If true, triggers OAuth flow on connect
         */
        useOAuth?: boolean;
    };
    /**
     * Initial tab to navigate to. Defaults to "playground".
     */
    defaultTab?: string;
    /**
     * If true, automatically launches the inspector when the Vite dev server starts.
     * Defaults to true.
     */
    autoLaunch?: boolean;
    /**
     * Enable verbose logging output.
     * When false (default), the inspector runs silently.
     */
    verbose?: boolean;
    /**
     * Content Security Policy mode for the Playground sandbox.
     * - "permissive": disables CSP enforcement for easier development (default)
     * - "widget-declared": enforces CSP directives declared by the widget
     */
    cspMode?: "permissive" | "widget-declared";
}
/**
 * Vite plugin that integrates the MCP Inspector into your development workflow.
 *
 * @example
 * ```typescript
 * // vite.config.ts
 * import { defineConfig } from 'vite';
 * import { mcpInspector } from '@mcpjam/inspector/vite';
 *
 * export default defineConfig({
 *   plugins: [
 *     mcpInspector({
 *       server: {
 *         name: 'My MCP Server',
 *         url: 'http://localhost:3000/mcp',
 *       },
 *       defaultTab: 'playground',
 *     }),
 *   ],
 * });
 * ```
 */
declare function mcpInspector(options?: MCPInspectorPluginOptions): Plugin;

export { type MCPInspectorPluginOptions, mcpInspector };
