import { z } from "zod/v3";
import { RspackOptions } from "@rspack/core";
/**
 * xmcp Config schema
 */
export declare const configSchema: z.ZodObject<{
    stdio: z.ZodOptional<z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodEffects<z.ZodObject<{
        debug: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
    }, "strip", z.ZodTypeAny, {
        debug?: boolean | undefined;
    }, {
        debug?: boolean | undefined;
    }>, {
        debug: boolean;
    }, {
        debug?: boolean | undefined;
    }>]>>>;
    http: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodEffects<z.ZodObject<{
        port: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
        host: z.ZodOptional<z.ZodDefault<z.ZodString>>;
        bodySizeLimit: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
        debug: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
        endpoint: z.ZodOptional<z.ZodDefault<z.ZodString>>;
        cors: z.ZodOptional<z.ZodEffects<z.ZodObject<{
            origin: z.ZodOptional<z.ZodDefault<z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodString, "many">, z.ZodBoolean]>>>;
            methods: z.ZodOptional<z.ZodDefault<z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodString, "many">]>>>;
            allowedHeaders: z.ZodOptional<z.ZodDefault<z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodString, "many">]>>>;
            exposedHeaders: z.ZodOptional<z.ZodDefault<z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodString, "many">]>>>;
            credentials: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
            maxAge: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
        }, "strip", z.ZodTypeAny, {
            origin?: string | boolean | string[] | undefined;
            methods?: string | string[] | undefined;
            allowedHeaders?: string | string[] | undefined;
            exposedHeaders?: string | string[] | undefined;
            credentials?: boolean | undefined;
            maxAge?: number | undefined;
        }, {
            origin?: string | boolean | string[] | undefined;
            methods?: string | string[] | undefined;
            allowedHeaders?: string | string[] | undefined;
            exposedHeaders?: string | string[] | undefined;
            credentials?: boolean | undefined;
            maxAge?: number | undefined;
        }>, {
            origin: string | boolean | string[];
            methods: string | string[];
            allowedHeaders: string | string[];
            exposedHeaders: string | string[];
            credentials: boolean;
            maxAge: number;
        }, {
            origin?: string | boolean | string[] | undefined;
            methods?: string | string[] | undefined;
            allowedHeaders?: string | string[] | undefined;
            exposedHeaders?: string | string[] | undefined;
            credentials?: boolean | undefined;
            maxAge?: number | undefined;
        }>>;
    }, "strip", z.ZodTypeAny, {
        port?: number | undefined;
        host?: string | undefined;
        bodySizeLimit?: number | undefined;
        debug?: boolean | undefined;
        endpoint?: string | undefined;
        cors?: {
            origin: string | boolean | string[];
            methods: string | string[];
            allowedHeaders: string | string[];
            exposedHeaders: string | string[];
            credentials: boolean;
            maxAge: number;
        } | undefined;
    }, {
        port?: number | undefined;
        host?: string | undefined;
        bodySizeLimit?: number | undefined;
        debug?: boolean | undefined;
        endpoint?: string | undefined;
        cors?: {
            origin?: string | boolean | string[] | undefined;
            methods?: string | string[] | undefined;
            allowedHeaders?: string | string[] | undefined;
            exposedHeaders?: string | string[] | undefined;
            credentials?: boolean | undefined;
            maxAge?: number | undefined;
        } | undefined;
    }>, {
        port: number;
        host: string;
        bodySizeLimit: number;
        debug: boolean;
        endpoint: string;
        cors: {
            origin: string | boolean | string[];
            methods: string | string[];
            allowedHeaders: string | string[];
            exposedHeaders: string | string[];
            credentials: boolean;
            maxAge: number;
        };
    }, {
        port?: number | undefined;
        host?: string | undefined;
        bodySizeLimit?: number | undefined;
        debug?: boolean | undefined;
        endpoint?: string | undefined;
        cors?: {
            origin?: string | boolean | string[] | undefined;
            methods?: string | string[] | undefined;
            allowedHeaders?: string | string[] | undefined;
            exposedHeaders?: string | string[] | undefined;
            credentials?: boolean | undefined;
            maxAge?: number | undefined;
        } | undefined;
    }>]>>;
    experimental: z.ZodOptional<z.ZodObject<{
        oauth: z.ZodOptional<z.ZodEffects<z.ZodObject<{
            endpoints: z.ZodObject<{
                authorizationUrl: z.ZodString;
                tokenUrl: z.ZodString;
                revocationUrl: z.ZodOptional<z.ZodString>;
                userInfoUrl: z.ZodOptional<z.ZodString>;
                registerUrl: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                authorizationUrl: string;
                tokenUrl: string;
                registerUrl: string;
                revocationUrl?: string | undefined;
                userInfoUrl?: string | undefined;
            }, {
                authorizationUrl: string;
                tokenUrl: string;
                registerUrl: string;
                revocationUrl?: string | undefined;
                userInfoUrl?: string | undefined;
            }>;
            issuerUrl: z.ZodString;
            baseUrl: z.ZodString;
            serviceDocumentationUrl: z.ZodOptional<z.ZodString>;
            pathPrefix: z.ZodOptional<z.ZodString>;
            defaultScopes: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        }, "strip", z.ZodTypeAny, {
            endpoints: {
                authorizationUrl: string;
                tokenUrl: string;
                registerUrl: string;
                revocationUrl?: string | undefined;
                userInfoUrl?: string | undefined;
            };
            issuerUrl: string;
            baseUrl: string;
            serviceDocumentationUrl?: string | undefined;
            pathPrefix?: string | undefined;
            defaultScopes?: string[] | undefined;
        }, {
            endpoints: {
                authorizationUrl: string;
                tokenUrl: string;
                registerUrl: string;
                revocationUrl?: string | undefined;
                userInfoUrl?: string | undefined;
            };
            issuerUrl: string;
            baseUrl: string;
            serviceDocumentationUrl?: string | undefined;
            pathPrefix?: string | undefined;
            defaultScopes?: string[] | undefined;
        }>, {
            endpoints: {
                authorizationUrl: string;
                tokenUrl: string;
                registerUrl: string;
                revocationUrl?: string | undefined;
                userInfoUrl?: string | undefined;
            };
            issuerUrl: string;
            baseUrl: string;
            pathPrefix: string;
            defaultScopes: string[];
            serviceDocumentationUrl?: string | undefined;
        }, {
            endpoints: {
                authorizationUrl: string;
                tokenUrl: string;
                registerUrl: string;
                revocationUrl?: string | undefined;
                userInfoUrl?: string | undefined;
            };
            issuerUrl: string;
            baseUrl: string;
            serviceDocumentationUrl?: string | undefined;
            pathPrefix?: string | undefined;
            defaultScopes?: string[] | undefined;
        }>>;
        adapter: z.ZodOptional<z.ZodEnum<["express", "nextjs"]>>;
    }, "strip", z.ZodTypeAny, {
        oauth?: {
            endpoints: {
                authorizationUrl: string;
                tokenUrl: string;
                registerUrl: string;
                revocationUrl?: string | undefined;
                userInfoUrl?: string | undefined;
            };
            issuerUrl: string;
            baseUrl: string;
            pathPrefix: string;
            defaultScopes: string[];
            serviceDocumentationUrl?: string | undefined;
        } | undefined;
        adapter?: "express" | "nextjs" | undefined;
    }, {
        oauth?: {
            endpoints: {
                authorizationUrl: string;
                tokenUrl: string;
                registerUrl: string;
                revocationUrl?: string | undefined;
                userInfoUrl?: string | undefined;
            };
            issuerUrl: string;
            baseUrl: string;
            serviceDocumentationUrl?: string | undefined;
            pathPrefix?: string | undefined;
            defaultScopes?: string[] | undefined;
        } | undefined;
        adapter?: "express" | "nextjs" | undefined;
    }>>;
    paths: z.ZodOptional<z.ZodEffects<z.ZodObject<{
        tools: z.ZodOptional<z.ZodDefault<z.ZodUnion<[z.ZodBoolean, z.ZodString]>>>;
        prompts: z.ZodOptional<z.ZodDefault<z.ZodUnion<[z.ZodBoolean, z.ZodString]>>>;
        resources: z.ZodOptional<z.ZodDefault<z.ZodUnion<[z.ZodBoolean, z.ZodString]>>>;
    }, "strip", z.ZodTypeAny, {
        tools?: string | boolean | undefined;
        prompts?: string | boolean | undefined;
        resources?: string | boolean | undefined;
    }, {
        tools?: string | boolean | undefined;
        prompts?: string | boolean | undefined;
        resources?: string | boolean | undefined;
    }>, {
        tools: string | boolean;
        prompts: string | boolean;
        resources: string | boolean;
    }, {
        tools?: string | boolean | undefined;
        prompts?: string | boolean | undefined;
        resources?: string | boolean | undefined;
    }>>;
    bundler: z.ZodOptional<z.ZodOptional<z.ZodFunction<z.ZodTuple<[z.ZodAny], z.ZodUnknown>, z.ZodAny>>>;
    template: z.ZodOptional<z.ZodEffects<z.ZodObject<{
        name: z.ZodOptional<z.ZodDefault<z.ZodString>>;
        description: z.ZodOptional<z.ZodDefault<z.ZodString>>;
    }, "strip", z.ZodTypeAny, {
        name?: string | undefined;
        description?: string | undefined;
    }, {
        name?: string | undefined;
        description?: string | undefined;
    }>, {
        name: string;
        description: string;
    }, {
        name?: string | undefined;
        description?: string | undefined;
    }>>;
    typescript: z.ZodOptional<z.ZodEffects<z.ZodObject<{
        skipTypeCheck: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
    }, "strip", z.ZodTypeAny, {
        skipTypeCheck?: boolean | undefined;
    }, {
        skipTypeCheck?: boolean | undefined;
    }>, {
        skipTypeCheck: boolean;
    }, {
        skipTypeCheck?: boolean | undefined;
    }>>;
}, "strip", z.ZodTypeAny, {
    stdio?: boolean | {
        debug: boolean;
    } | undefined;
    http?: boolean | {
        port: number;
        host: string;
        bodySizeLimit: number;
        debug: boolean;
        endpoint: string;
        cors: {
            origin: string | boolean | string[];
            methods: string | string[];
            allowedHeaders: string | string[];
            exposedHeaders: string | string[];
            credentials: boolean;
            maxAge: number;
        };
    } | undefined;
    experimental?: {
        oauth?: {
            endpoints: {
                authorizationUrl: string;
                tokenUrl: string;
                registerUrl: string;
                revocationUrl?: string | undefined;
                userInfoUrl?: string | undefined;
            };
            issuerUrl: string;
            baseUrl: string;
            pathPrefix: string;
            defaultScopes: string[];
            serviceDocumentationUrl?: string | undefined;
        } | undefined;
        adapter?: "express" | "nextjs" | undefined;
    } | undefined;
    paths?: {
        tools: string | boolean;
        prompts: string | boolean;
        resources: string | boolean;
    } | undefined;
    bundler?: ((args_0: any, ...args: unknown[]) => any) | undefined;
    template?: {
        name: string;
        description: string;
    } | undefined;
    typescript?: {
        skipTypeCheck: boolean;
    } | undefined;
}, {
    stdio?: boolean | {
        debug?: boolean | undefined;
    } | undefined;
    http?: boolean | {
        port?: number | undefined;
        host?: string | undefined;
        bodySizeLimit?: number | undefined;
        debug?: boolean | undefined;
        endpoint?: string | undefined;
        cors?: {
            origin?: string | boolean | string[] | undefined;
            methods?: string | string[] | undefined;
            allowedHeaders?: string | string[] | undefined;
            exposedHeaders?: string | string[] | undefined;
            credentials?: boolean | undefined;
            maxAge?: number | undefined;
        } | undefined;
    } | undefined;
    experimental?: {
        oauth?: {
            endpoints: {
                authorizationUrl: string;
                tokenUrl: string;
                registerUrl: string;
                revocationUrl?: string | undefined;
                userInfoUrl?: string | undefined;
            };
            issuerUrl: string;
            baseUrl: string;
            serviceDocumentationUrl?: string | undefined;
            pathPrefix?: string | undefined;
            defaultScopes?: string[] | undefined;
        } | undefined;
        adapter?: "express" | "nextjs" | undefined;
    } | undefined;
    paths?: {
        tools?: string | boolean | undefined;
        prompts?: string | boolean | undefined;
        resources?: string | boolean | undefined;
    } | undefined;
    bundler?: ((args_0: any, ...args: unknown[]) => any) | undefined;
    template?: {
        name?: string | undefined;
        description?: string | undefined;
    } | undefined;
    typescript?: {
        skipTypeCheck?: boolean | undefined;
    } | undefined;
}>;
type BundlerConfigType = {
    bundler?: (config: RspackOptions) => RspackOptions;
};
export type XmcpConfigInputSchema = Omit<z.input<typeof configSchema>, "bundler"> & BundlerConfigType;
export type XmcpConfigOutputSchema = Omit<z.output<typeof configSchema>, "bundler"> & BundlerConfigType;
export type { ResolvedHttpConfig, ResolvedStdioConfig, ResolvedPathsConfig, ResolvedExperimentalConfig, } from "./utils";
export type { HttpTransportConfig, StdioTransportConfig, CorsConfig, OAuthConfig, ExperimentalConfig, PathsConfig, BundlerConfig, TemplateConfig, TypescriptConfig, } from "./schemas";
