import { PluginOption } from 'vite';

export interface VTJumpOptions {
    /**
     * 工作目录
     */
    workingDir?: string;
    /**
     * IDE protocol to use (e.g., 'vscode', 'idea')
     */
    protocols?: Array<'cursor' | 'windsurf' | 'trae' | 'vscode' | 'idea' | 'webstorm' | 'phpstorm' | 'sublime'>;
    /**
     * The endpoint to use for the jump
     * @default 'vite'
     */
    jumpEndpoints?: Array<'backend' | 'browser' | 'vite'>;
    /**
     * 后端框架支持情况
     */
    backendFrameworks?: Array<BackendFramework>;
    /**
     * 后端支持默认开启
     */
    defaultBackendSupport?: boolean;
}
export type BackendFramework = 'laravel';
export type VTJumpPlugin = (options?: VTJumpOptions) => PluginOption;
export interface VTJumpOptionsTiny {
    /**
     * IDE protocol to use (e.g., 'vscode', 'idea')
     */
    protocols?: Array<'cursor' | 'windsurf' | 'trae' | 'vscode' | 'idea' | 'webstorm' | 'phpstorm' | 'sublime'>;
    /**
     * 工作目录，默认情况下会由服务器端返回项目的根目录
     */
    workingDir?: string;
    /**
     * assets，default：/node_modules/vtjump/dist/client/vtjump.js
     */
    assets?: string;
    /**
     * The endpoint to use for the jump
     * @default 'vite'
     */
    jumpEndpoints?: Array<'backend' | 'browser' | 'vite'>;
}
