import z from 'zod';
import { DefaultMCPClient, MCPServerConfig } from '../MCPClient';
import type { CloudRegion } from '../../../utils/types';
export declare const VisualStudioCodeMCPConfig: z.ZodObject<{
    servers: z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodObject<{
        command: z.ZodOptional<z.ZodString>;
        args: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
    }, "strip", z.ZodTypeAny, {
        env?: Record<string, string> | undefined;
        command?: string | undefined;
        args?: string[] | undefined;
    }, {
        env?: Record<string, string> | undefined;
        command?: string | undefined;
        args?: string[] | undefined;
    }>, z.ZodObject<{
        type: z.ZodEnum<["http", "sse"]>;
        url: z.ZodString;
        headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
    }, "strip", z.ZodTypeAny, {
        type: "http" | "sse";
        url: string;
        headers?: Record<string, string> | undefined;
    }, {
        type: "http" | "sse";
        url: string;
        headers?: Record<string, string> | undefined;
    }>]>>;
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
    servers: z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodObject<{
        command: z.ZodOptional<z.ZodString>;
        args: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
    }, "strip", z.ZodTypeAny, {
        env?: Record<string, string> | undefined;
        command?: string | undefined;
        args?: string[] | undefined;
    }, {
        env?: Record<string, string> | undefined;
        command?: string | undefined;
        args?: string[] | undefined;
    }>, z.ZodObject<{
        type: z.ZodEnum<["http", "sse"]>;
        url: z.ZodString;
        headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
    }, "strip", z.ZodTypeAny, {
        type: "http" | "sse";
        url: string;
        headers?: Record<string, string> | undefined;
    }, {
        type: "http" | "sse";
        url: string;
        headers?: Record<string, string> | undefined;
    }>]>>;
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
    servers: z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodObject<{
        command: z.ZodOptional<z.ZodString>;
        args: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
    }, "strip", z.ZodTypeAny, {
        env?: Record<string, string> | undefined;
        command?: string | undefined;
        args?: string[] | undefined;
    }, {
        env?: Record<string, string> | undefined;
        command?: string | undefined;
        args?: string[] | undefined;
    }>, z.ZodObject<{
        type: z.ZodEnum<["http", "sse"]>;
        url: z.ZodString;
        headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
    }, "strip", z.ZodTypeAny, {
        type: "http" | "sse";
        url: string;
        headers?: Record<string, string> | undefined;
    }, {
        type: "http" | "sse";
        url: string;
        headers?: Record<string, string> | undefined;
    }>]>>;
}, z.ZodTypeAny, "passthrough">>;
export type VisualStudioCodeMCPConfig = z.infer<typeof VisualStudioCodeMCPConfig>;
export declare class VisualStudioCodeClient extends DefaultMCPClient {
    name: string;
    getServerPropertyName(): string;
    isClientSupported(): Promise<boolean>;
    getConfigPath(): Promise<string>;
    getServerConfig(apiKey: string, type: 'sse' | 'streamable-http', selectedFeatures?: string[], local?: boolean, region?: CloudRegion): MCPServerConfig;
    addServer(apiKey: string, selectedFeatures?: string[], local?: boolean, region?: CloudRegion): Promise<{
        success: boolean;
    }>;
}
