import { ChildProcess } from 'child_process';

/**
 * Configuration options for launching the MCP Inspector.
 */
interface LaunchOptions {
    /**
     * Server configuration for auto-connect
     */
    server?: {
        /**
         * Display name for the server in the UI
         */
        name: string;
        /**
         * HTTP URL of the MCP server (required for HTTP transport)
         */
        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.
     * Options: "servers", "tools", "resources", "prompts", "chat", "playground"
     */
    defaultTab?: string;
    /**
     * Enable verbose logging output.
     * When false (default), the inspector runs silently.
     */
    verbose?: boolean;
    /**
     * Content Security Policy mode for the App Builder sandbox.
     * - "permissive": disables CSP enforcement for easier development (default)
     * - "widget-declared": enforces CSP directives declared by the widget
     */
    cspMode?: "permissive" | "widget-declared";
}
/**
 * Handle for a running MCP Inspector instance.
 */
interface InspectorInstance {
    /**
     * The URL where the inspector is running
     */
    url: string;
    /**
     * Stop the inspector server
     */
    stop: () => Promise<void>;
    /**
     * The underlying child process (for advanced use)
     */
    process: ChildProcess;
}
declare function launchInspector(options?: LaunchOptions): Promise<InspectorInstance>;

export { type InspectorInstance, type LaunchOptions, launchInspector };
