import type { DirectoryPath, FilePath } from '../types';
import { z } from 'zod';
export declare const GatewayTargetTypeSchema: z.ZodEnum<{
    lambda: "lambda";
    mcpServer: "mcpServer";
    openApiSchema: "openApiSchema";
    smithyModel: "smithyModel";
    apiGateway: "apiGateway";
    lambdaFunctionArn: "lambdaFunctionArn";
}>;
export type GatewayTargetType = z.infer<typeof GatewayTargetTypeSchema>;
export declare const OutboundAuthTypeSchema: z.ZodEnum<{
    NONE: "NONE";
    OAUTH: "OAUTH";
    API_KEY: "API_KEY";
}>;
export type OutboundAuthType = z.infer<typeof OutboundAuthTypeSchema>;
export declare const OutboundAuthSchema: z.ZodObject<{
    type: z.ZodDefault<z.ZodEnum<{
        NONE: "NONE";
        OAUTH: "OAUTH";
        API_KEY: "API_KEY";
    }>>;
    credentialName: z.ZodOptional<z.ZodString>;
    scopes: z.ZodOptional<z.ZodArray<z.ZodString>>;
}, z.core.$strict>;
export type OutboundAuth = z.infer<typeof OutboundAuthSchema>;
/**
 * Outbound authentication rules per gateway target type.
 *
 * - `authRequired` — target cannot be created without outbound auth
 * - `validAuthTypes` — allowed OutboundAuthType values (empty = no outbound auth applicable)
 * - `iamRoleFallback` — CDK passes GATEWAY_IAM_ROLE when no auth configured
 */
export declare const TARGET_TYPE_AUTH_CONFIG: Record<GatewayTargetType, {
    authRequired: boolean;
    validAuthTypes: readonly OutboundAuthType[];
    iamRoleFallback: boolean;
}>;
export declare const ApiGatewayHttpMethodSchema: z.ZodEnum<{
    GET: "GET";
    POST: "POST";
    PUT: "PUT";
    DELETE: "DELETE";
    PATCH: "PATCH";
    HEAD: "HEAD";
    OPTIONS: "OPTIONS";
}>;
export type ApiGatewayHttpMethod = z.infer<typeof ApiGatewayHttpMethodSchema>;
export declare const ApiGatewayToolFilterSchema: z.ZodObject<{
    filterPath: z.ZodString;
    methods: z.ZodArray<z.ZodEnum<{
        GET: "GET";
        POST: "POST";
        PUT: "PUT";
        DELETE: "DELETE";
        PATCH: "PATCH";
        HEAD: "HEAD";
        OPTIONS: "OPTIONS";
    }>>;
}, z.core.$strict>;
export declare const ApiGatewayToolOverrideSchema: z.ZodObject<{
    name: z.ZodString;
    path: z.ZodString;
    method: z.ZodEnum<{
        GET: "GET";
        POST: "POST";
        PUT: "PUT";
        DELETE: "DELETE";
        PATCH: "PATCH";
        HEAD: "HEAD";
        OPTIONS: "OPTIONS";
    }>;
    description: z.ZodOptional<z.ZodString>;
}, z.core.$strict>;
export declare const ApiGatewayToolConfigurationSchema: z.ZodObject<{
    toolFilters: z.ZodArray<z.ZodObject<{
        filterPath: z.ZodString;
        methods: z.ZodArray<z.ZodEnum<{
            GET: "GET";
            POST: "POST";
            PUT: "PUT";
            DELETE: "DELETE";
            PATCH: "PATCH";
            HEAD: "HEAD";
            OPTIONS: "OPTIONS";
        }>>;
    }, z.core.$strict>>;
    toolOverrides: z.ZodOptional<z.ZodArray<z.ZodObject<{
        name: z.ZodString;
        path: z.ZodString;
        method: z.ZodEnum<{
            GET: "GET";
            POST: "POST";
            PUT: "PUT";
            DELETE: "DELETE";
            PATCH: "PATCH";
            HEAD: "HEAD";
            OPTIONS: "OPTIONS";
        }>;
        description: z.ZodOptional<z.ZodString>;
    }, z.core.$strict>>>;
}, z.core.$strict>;
export declare const ApiGatewayConfigSchema: z.ZodObject<{
    restApiId: z.ZodString;
    stage: z.ZodString;
    apiGatewayToolConfiguration: z.ZodObject<{
        toolFilters: z.ZodArray<z.ZodObject<{
            filterPath: z.ZodString;
            methods: z.ZodArray<z.ZodEnum<{
                GET: "GET";
                POST: "POST";
                PUT: "PUT";
                DELETE: "DELETE";
                PATCH: "PATCH";
                HEAD: "HEAD";
                OPTIONS: "OPTIONS";
            }>>;
        }, z.core.$strict>>;
        toolOverrides: z.ZodOptional<z.ZodArray<z.ZodObject<{
            name: z.ZodString;
            path: z.ZodString;
            method: z.ZodEnum<{
                GET: "GET";
                POST: "POST";
                PUT: "PUT";
                DELETE: "DELETE";
                PATCH: "PATCH";
                HEAD: "HEAD";
                OPTIONS: "OPTIONS";
            }>;
            description: z.ZodOptional<z.ZodString>;
        }, z.core.$strict>>>;
    }, z.core.$strict>;
}, z.core.$strict>;
export type ApiGatewayConfig = z.infer<typeof ApiGatewayConfigSchema>;
export declare const LambdaFunctionArnConfigSchema: z.ZodObject<{
    lambdaArn: z.ZodString;
    toolSchemaFile: z.ZodString;
}, z.core.$strict>;
export type LambdaFunctionArnConfig = z.infer<typeof LambdaFunctionArnConfigSchema>;
export declare const McpImplLanguageSchema: z.ZodEnum<{
    Python: "Python";
    TypeScript: "TypeScript";
}>;
export type McpImplementationLanguage = z.infer<typeof McpImplLanguageSchema>;
export declare const ComputeHostSchema: z.ZodEnum<{
    AgentCoreRuntime: "AgentCoreRuntime";
    Lambda: "Lambda";
}>;
export type ComputeHost = z.infer<typeof ComputeHostSchema>;
/**
 * Code-based tool implementation (Python, TypeScript).
 *
 * The CLI is responsible for:
 * - installing dependencies
 * - building / bundling
 * - creating a zip artifact
 * - uploading artifacts to S3
 */
export declare const ToolImplementationBindingSchema: z.ZodObject<{
    language: z.ZodEnum<{
        Python: "Python";
        TypeScript: "TypeScript";
    }>;
    path: z.ZodString;
    handler: z.ZodString;
}, z.core.$strict>;
export type ToolImplementationBinding = z.infer<typeof ToolImplementationBindingSchema>;
/**
 * Opaque IAM policy document.
 *
 * This is passed through verbatim to CloudFormation / IAM.
 * AgentCore does not validate, transform, or provide compatibility guarantees.
 */
export declare const IamPolicyDocumentSchema: z.ZodObject<{
    Version: z.ZodString;
    Statement: z.ZodArray<z.ZodUnknown>;
}, z.core.$loose>;
export type IamPolicyDocument = z.infer<typeof IamPolicyDocumentSchema>;
declare const CodeZipRuntimeConfigSchema: z.ZodObject<{
    artifact: z.ZodLiteral<"CodeZip">;
    pythonVersion: z.ZodEnum<{
        PYTHON_3_10: "PYTHON_3_10";
        PYTHON_3_11: "PYTHON_3_11";
        PYTHON_3_12: "PYTHON_3_12";
        PYTHON_3_13: "PYTHON_3_13";
        PYTHON_3_14: "PYTHON_3_14";
    }>;
    name: z.ZodString;
    entrypoint: z.ZodType<FilePath, unknown, z.core.$ZodTypeInternals<FilePath, unknown>>;
    codeLocation: z.ZodType<DirectoryPath, unknown, z.core.$ZodTypeInternals<DirectoryPath, unknown>>;
    instrumentation: z.ZodOptional<z.ZodObject<{
        enableOtel: z.ZodDefault<z.ZodBoolean>;
    }, z.core.$strip>>;
    networkMode: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
        PUBLIC: "PUBLIC";
        VPC: "VPC";
    }>>>;
    description: z.ZodOptional<z.ZodString>;
}, z.core.$strict>;
export type CodeZipRuntimeConfig = z.infer<typeof CodeZipRuntimeConfigSchema>;
/**
 * Runtime configuration for AgentCore Runtime (MCP mode).
 * Explicit CodeZip artifact configuration - no CLI-managed defaults.
 */
export declare const RuntimeConfigSchema: z.ZodObject<{
    artifact: z.ZodLiteral<"CodeZip">;
    pythonVersion: z.ZodEnum<{
        PYTHON_3_10: "PYTHON_3_10";
        PYTHON_3_11: "PYTHON_3_11";
        PYTHON_3_12: "PYTHON_3_12";
        PYTHON_3_13: "PYTHON_3_13";
        PYTHON_3_14: "PYTHON_3_14";
    }>;
    name: z.ZodString;
    entrypoint: z.ZodType<FilePath, unknown, z.core.$ZodTypeInternals<FilePath, unknown>>;
    codeLocation: z.ZodType<DirectoryPath, unknown, z.core.$ZodTypeInternals<DirectoryPath, unknown>>;
    instrumentation: z.ZodOptional<z.ZodObject<{
        enableOtel: z.ZodDefault<z.ZodBoolean>;
    }, z.core.$strip>>;
    networkMode: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
        PUBLIC: "PUBLIC";
        VPC: "VPC";
    }>>>;
    description: z.ZodOptional<z.ZodString>;
}, z.core.$strict>;
export type RuntimeConfig = z.infer<typeof RuntimeConfigSchema>;
/**
 * Lambda compute configuration schema.
 * Lambda supports both Python and TypeScript.
 */
declare const LambdaComputeConfigSchema: z.ZodObject<{
    host: z.ZodLiteral<"Lambda">;
    implementation: z.ZodObject<{
        language: z.ZodEnum<{
            Python: "Python";
            TypeScript: "TypeScript";
        }>;
        path: z.ZodString;
        handler: z.ZodString;
    }, z.core.$strict>;
    nodeVersion: z.ZodOptional<z.ZodEnum<{
        NODE_18: "NODE_18";
        NODE_20: "NODE_20";
        NODE_22: "NODE_22";
    }>>;
    pythonVersion: z.ZodOptional<z.ZodEnum<{
        PYTHON_3_10: "PYTHON_3_10";
        PYTHON_3_11: "PYTHON_3_11";
        PYTHON_3_12: "PYTHON_3_12";
        PYTHON_3_13: "PYTHON_3_13";
        PYTHON_3_14: "PYTHON_3_14";
    }>>;
    timeout: z.ZodOptional<z.ZodNumber>;
    memorySize: z.ZodOptional<z.ZodNumber>;
    iamPolicy: z.ZodOptional<z.ZodObject<{
        Version: z.ZodString;
        Statement: z.ZodArray<z.ZodUnknown>;
    }, z.core.$loose>>;
}, z.core.$strict>;
export type LambdaComputeConfig = z.infer<typeof LambdaComputeConfigSchema>;
/**
 * AgentCore Runtime compute configuration schema.
 * AgentCore Runtime ONLY supports Python.
 */
declare const AgentCoreRuntimeComputeConfigSchema: z.ZodObject<{
    host: z.ZodLiteral<"AgentCoreRuntime">;
    implementation: z.ZodObject<{
        language: z.ZodEnum<{
            Python: "Python";
            TypeScript: "TypeScript";
        }>;
        path: z.ZodString;
        handler: z.ZodString;
    }, z.core.$strict>;
    runtime: z.ZodOptional<z.ZodObject<{
        artifact: z.ZodLiteral<"CodeZip">;
        pythonVersion: z.ZodEnum<{
            PYTHON_3_10: "PYTHON_3_10";
            PYTHON_3_11: "PYTHON_3_11";
            PYTHON_3_12: "PYTHON_3_12";
            PYTHON_3_13: "PYTHON_3_13";
            PYTHON_3_14: "PYTHON_3_14";
        }>;
        name: z.ZodString;
        entrypoint: z.ZodType<FilePath, unknown, z.core.$ZodTypeInternals<FilePath, unknown>>;
        codeLocation: z.ZodType<DirectoryPath, unknown, z.core.$ZodTypeInternals<DirectoryPath, unknown>>;
        instrumentation: z.ZodOptional<z.ZodObject<{
            enableOtel: z.ZodDefault<z.ZodBoolean>;
        }, z.core.$strip>>;
        networkMode: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
            PUBLIC: "PUBLIC";
            VPC: "VPC";
        }>>>;
        description: z.ZodOptional<z.ZodString>;
    }, z.core.$strict>>;
    iamPolicy: z.ZodOptional<z.ZodObject<{
        Version: z.ZodString;
        Statement: z.ZodArray<z.ZodUnknown>;
    }, z.core.$loose>>;
}, z.core.$strict>;
export type AgentCoreRuntimeComputeConfig = z.infer<typeof AgentCoreRuntimeComputeConfigSchema>;
/**
 * Tool compute configuration (discriminated union).
 */
export declare const ToolComputeConfigSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
    host: z.ZodLiteral<"Lambda">;
    implementation: z.ZodObject<{
        language: z.ZodEnum<{
            Python: "Python";
            TypeScript: "TypeScript";
        }>;
        path: z.ZodString;
        handler: z.ZodString;
    }, z.core.$strict>;
    nodeVersion: z.ZodOptional<z.ZodEnum<{
        NODE_18: "NODE_18";
        NODE_20: "NODE_20";
        NODE_22: "NODE_22";
    }>>;
    pythonVersion: z.ZodOptional<z.ZodEnum<{
        PYTHON_3_10: "PYTHON_3_10";
        PYTHON_3_11: "PYTHON_3_11";
        PYTHON_3_12: "PYTHON_3_12";
        PYTHON_3_13: "PYTHON_3_13";
        PYTHON_3_14: "PYTHON_3_14";
    }>>;
    timeout: z.ZodOptional<z.ZodNumber>;
    memorySize: z.ZodOptional<z.ZodNumber>;
    iamPolicy: z.ZodOptional<z.ZodObject<{
        Version: z.ZodString;
        Statement: z.ZodArray<z.ZodUnknown>;
    }, z.core.$loose>>;
}, z.core.$strict>, z.ZodObject<{
    host: z.ZodLiteral<"AgentCoreRuntime">;
    implementation: z.ZodObject<{
        language: z.ZodEnum<{
            Python: "Python";
            TypeScript: "TypeScript";
        }>;
        path: z.ZodString;
        handler: z.ZodString;
    }, z.core.$strict>;
    runtime: z.ZodOptional<z.ZodObject<{
        artifact: z.ZodLiteral<"CodeZip">;
        pythonVersion: z.ZodEnum<{
            PYTHON_3_10: "PYTHON_3_10";
            PYTHON_3_11: "PYTHON_3_11";
            PYTHON_3_12: "PYTHON_3_12";
            PYTHON_3_13: "PYTHON_3_13";
            PYTHON_3_14: "PYTHON_3_14";
        }>;
        name: z.ZodString;
        entrypoint: z.ZodType<FilePath, unknown, z.core.$ZodTypeInternals<FilePath, unknown>>;
        codeLocation: z.ZodType<DirectoryPath, unknown, z.core.$ZodTypeInternals<DirectoryPath, unknown>>;
        instrumentation: z.ZodOptional<z.ZodObject<{
            enableOtel: z.ZodDefault<z.ZodBoolean>;
        }, z.core.$strip>>;
        networkMode: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
            PUBLIC: "PUBLIC";
            VPC: "VPC";
        }>>>;
        description: z.ZodOptional<z.ZodString>;
    }, z.core.$strict>>;
    iamPolicy: z.ZodOptional<z.ZodObject<{
        Version: z.ZodString;
        Statement: z.ZodArray<z.ZodUnknown>;
    }, z.core.$loose>>;
}, z.core.$strict>], "host">;
export type ToolComputeConfig = z.infer<typeof ToolComputeConfigSchema>;
/** Schema source: either a local file path (read at synth time) or an S3 URI. */
export declare const SchemaSourceSchema: z.ZodUnion<readonly [z.ZodObject<{
    inline: z.ZodObject<{
        path: z.ZodString;
    }, z.core.$strict>;
}, z.core.$strict>, z.ZodObject<{
    s3: z.ZodObject<{
        uri: z.ZodString;
        bucketOwnerAccountId: z.ZodOptional<z.ZodString>;
    }, z.core.$strict>;
}, z.core.$strict>]>;
export type SchemaSource = z.infer<typeof SchemaSourceSchema>;
/**
 * A gateway target binds one or more ToolDefinitions to compute that services them.
 *
 * A single Lambda or AgentCoreRuntime can expose multiple tools. The gateway routes
 * tool invocations to the appropriate target based on tool name.
 *
 * If compute is omitted, the tools are treated as external or abstract targets.
 */
export declare const AgentCoreGatewayTargetSchema: z.ZodObject<{
    name: z.ZodString;
    targetType: z.ZodEnum<{
        lambda: "lambda";
        mcpServer: "mcpServer";
        openApiSchema: "openApiSchema";
        smithyModel: "smithyModel";
        apiGateway: "apiGateway";
        lambdaFunctionArn: "lambdaFunctionArn";
    }>;
    toolDefinitions: z.ZodOptional<z.ZodArray<z.ZodObject<{
        name: z.ZodString;
        description: z.ZodString;
        inputSchema: z.ZodType<import("./mcp-defs").SchemaDefinition, unknown, z.core.$ZodTypeInternals<import("./mcp-defs").SchemaDefinition, unknown>>;
        outputSchema: z.ZodOptional<z.ZodType<import("./mcp-defs").SchemaDefinition, unknown, z.core.$ZodTypeInternals<import("./mcp-defs").SchemaDefinition, unknown>>>;
    }, z.core.$strict>>>;
    compute: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
        host: z.ZodLiteral<"Lambda">;
        implementation: z.ZodObject<{
            language: z.ZodEnum<{
                Python: "Python";
                TypeScript: "TypeScript";
            }>;
            path: z.ZodString;
            handler: z.ZodString;
        }, z.core.$strict>;
        nodeVersion: z.ZodOptional<z.ZodEnum<{
            NODE_18: "NODE_18";
            NODE_20: "NODE_20";
            NODE_22: "NODE_22";
        }>>;
        pythonVersion: z.ZodOptional<z.ZodEnum<{
            PYTHON_3_10: "PYTHON_3_10";
            PYTHON_3_11: "PYTHON_3_11";
            PYTHON_3_12: "PYTHON_3_12";
            PYTHON_3_13: "PYTHON_3_13";
            PYTHON_3_14: "PYTHON_3_14";
        }>>;
        timeout: z.ZodOptional<z.ZodNumber>;
        memorySize: z.ZodOptional<z.ZodNumber>;
        iamPolicy: z.ZodOptional<z.ZodObject<{
            Version: z.ZodString;
            Statement: z.ZodArray<z.ZodUnknown>;
        }, z.core.$loose>>;
    }, z.core.$strict>, z.ZodObject<{
        host: z.ZodLiteral<"AgentCoreRuntime">;
        implementation: z.ZodObject<{
            language: z.ZodEnum<{
                Python: "Python";
                TypeScript: "TypeScript";
            }>;
            path: z.ZodString;
            handler: z.ZodString;
        }, z.core.$strict>;
        runtime: z.ZodOptional<z.ZodObject<{
            artifact: z.ZodLiteral<"CodeZip">;
            pythonVersion: z.ZodEnum<{
                PYTHON_3_10: "PYTHON_3_10";
                PYTHON_3_11: "PYTHON_3_11";
                PYTHON_3_12: "PYTHON_3_12";
                PYTHON_3_13: "PYTHON_3_13";
                PYTHON_3_14: "PYTHON_3_14";
            }>;
            name: z.ZodString;
            entrypoint: z.ZodType<FilePath, unknown, z.core.$ZodTypeInternals<FilePath, unknown>>;
            codeLocation: z.ZodType<DirectoryPath, unknown, z.core.$ZodTypeInternals<DirectoryPath, unknown>>;
            instrumentation: z.ZodOptional<z.ZodObject<{
                enableOtel: z.ZodDefault<z.ZodBoolean>;
            }, z.core.$strip>>;
            networkMode: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
                PUBLIC: "PUBLIC";
                VPC: "VPC";
            }>>>;
            description: z.ZodOptional<z.ZodString>;
        }, z.core.$strict>>;
        iamPolicy: z.ZodOptional<z.ZodObject<{
            Version: z.ZodString;
            Statement: z.ZodArray<z.ZodUnknown>;
        }, z.core.$loose>>;
    }, z.core.$strict>], "host">>;
    endpoint: z.ZodOptional<z.ZodString>;
    outboundAuth: z.ZodOptional<z.ZodObject<{
        type: z.ZodDefault<z.ZodEnum<{
            NONE: "NONE";
            OAUTH: "OAUTH";
            API_KEY: "API_KEY";
        }>>;
        credentialName: z.ZodOptional<z.ZodString>;
        scopes: z.ZodOptional<z.ZodArray<z.ZodString>>;
    }, z.core.$strict>>;
    apiGateway: z.ZodOptional<z.ZodObject<{
        restApiId: z.ZodString;
        stage: z.ZodString;
        apiGatewayToolConfiguration: z.ZodObject<{
            toolFilters: z.ZodArray<z.ZodObject<{
                filterPath: z.ZodString;
                methods: z.ZodArray<z.ZodEnum<{
                    GET: "GET";
                    POST: "POST";
                    PUT: "PUT";
                    DELETE: "DELETE";
                    PATCH: "PATCH";
                    HEAD: "HEAD";
                    OPTIONS: "OPTIONS";
                }>>;
            }, z.core.$strict>>;
            toolOverrides: z.ZodOptional<z.ZodArray<z.ZodObject<{
                name: z.ZodString;
                path: z.ZodString;
                method: z.ZodEnum<{
                    GET: "GET";
                    POST: "POST";
                    PUT: "PUT";
                    DELETE: "DELETE";
                    PATCH: "PATCH";
                    HEAD: "HEAD";
                    OPTIONS: "OPTIONS";
                }>;
                description: z.ZodOptional<z.ZodString>;
            }, z.core.$strict>>>;
        }, z.core.$strict>;
    }, z.core.$strict>>;
    schemaSource: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
        inline: z.ZodObject<{
            path: z.ZodString;
        }, z.core.$strict>;
    }, z.core.$strict>, z.ZodObject<{
        s3: z.ZodObject<{
            uri: z.ZodString;
            bucketOwnerAccountId: z.ZodOptional<z.ZodString>;
        }, z.core.$strict>;
    }, z.core.$strict>]>>;
    lambdaFunctionArn: z.ZodOptional<z.ZodObject<{
        lambdaArn: z.ZodString;
        toolSchemaFile: z.ZodString;
    }, z.core.$strict>>;
}, z.core.$strict>;
export type AgentCoreGatewayTarget = z.infer<typeof AgentCoreGatewayTargetSchema>;
export declare const GatewayExceptionLevelSchema: z.ZodEnum<{
    NONE: "NONE";
    DEBUG: "DEBUG";
}>;
export type GatewayExceptionLevel = z.infer<typeof GatewayExceptionLevelSchema>;
export declare const PolicyEngineModeSchema: z.ZodEnum<{
    LOG_ONLY: "LOG_ONLY";
    ENFORCE: "ENFORCE";
}>;
export type PolicyEngineMode = z.infer<typeof PolicyEngineModeSchema>;
export declare const GatewayPolicyEngineConfigurationSchema: z.ZodObject<{
    policyEngineName: z.ZodString;
    mode: z.ZodEnum<{
        LOG_ONLY: "LOG_ONLY";
        ENFORCE: "ENFORCE";
    }>;
}, z.core.$strict>;
export type GatewayPolicyEngineConfiguration = z.infer<typeof GatewayPolicyEngineConfigurationSchema>;
/**
 * Gateway abstraction with opinionated defaults.
 * Supports NONE (default) or CUSTOM_JWT authorizer types.
 */
export declare const AgentCoreGatewaySchema: z.ZodObject<{
    name: z.ZodString;
    resourceName: z.ZodOptional<z.ZodString>;
    description: z.ZodOptional<z.ZodString>;
    targets: z.ZodArray<z.ZodObject<{
        name: z.ZodString;
        targetType: z.ZodEnum<{
            lambda: "lambda";
            mcpServer: "mcpServer";
            openApiSchema: "openApiSchema";
            smithyModel: "smithyModel";
            apiGateway: "apiGateway";
            lambdaFunctionArn: "lambdaFunctionArn";
        }>;
        toolDefinitions: z.ZodOptional<z.ZodArray<z.ZodObject<{
            name: z.ZodString;
            description: z.ZodString;
            inputSchema: z.ZodType<import("./mcp-defs").SchemaDefinition, unknown, z.core.$ZodTypeInternals<import("./mcp-defs").SchemaDefinition, unknown>>;
            outputSchema: z.ZodOptional<z.ZodType<import("./mcp-defs").SchemaDefinition, unknown, z.core.$ZodTypeInternals<import("./mcp-defs").SchemaDefinition, unknown>>>;
        }, z.core.$strict>>>;
        compute: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
            host: z.ZodLiteral<"Lambda">;
            implementation: z.ZodObject<{
                language: z.ZodEnum<{
                    Python: "Python";
                    TypeScript: "TypeScript";
                }>;
                path: z.ZodString;
                handler: z.ZodString;
            }, z.core.$strict>;
            nodeVersion: z.ZodOptional<z.ZodEnum<{
                NODE_18: "NODE_18";
                NODE_20: "NODE_20";
                NODE_22: "NODE_22";
            }>>;
            pythonVersion: z.ZodOptional<z.ZodEnum<{
                PYTHON_3_10: "PYTHON_3_10";
                PYTHON_3_11: "PYTHON_3_11";
                PYTHON_3_12: "PYTHON_3_12";
                PYTHON_3_13: "PYTHON_3_13";
                PYTHON_3_14: "PYTHON_3_14";
            }>>;
            timeout: z.ZodOptional<z.ZodNumber>;
            memorySize: z.ZodOptional<z.ZodNumber>;
            iamPolicy: z.ZodOptional<z.ZodObject<{
                Version: z.ZodString;
                Statement: z.ZodArray<z.ZodUnknown>;
            }, z.core.$loose>>;
        }, z.core.$strict>, z.ZodObject<{
            host: z.ZodLiteral<"AgentCoreRuntime">;
            implementation: z.ZodObject<{
                language: z.ZodEnum<{
                    Python: "Python";
                    TypeScript: "TypeScript";
                }>;
                path: z.ZodString;
                handler: z.ZodString;
            }, z.core.$strict>;
            runtime: z.ZodOptional<z.ZodObject<{
                artifact: z.ZodLiteral<"CodeZip">;
                pythonVersion: z.ZodEnum<{
                    PYTHON_3_10: "PYTHON_3_10";
                    PYTHON_3_11: "PYTHON_3_11";
                    PYTHON_3_12: "PYTHON_3_12";
                    PYTHON_3_13: "PYTHON_3_13";
                    PYTHON_3_14: "PYTHON_3_14";
                }>;
                name: z.ZodString;
                entrypoint: z.ZodType<FilePath, unknown, z.core.$ZodTypeInternals<FilePath, unknown>>;
                codeLocation: z.ZodType<DirectoryPath, unknown, z.core.$ZodTypeInternals<DirectoryPath, unknown>>;
                instrumentation: z.ZodOptional<z.ZodObject<{
                    enableOtel: z.ZodDefault<z.ZodBoolean>;
                }, z.core.$strip>>;
                networkMode: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
                    PUBLIC: "PUBLIC";
                    VPC: "VPC";
                }>>>;
                description: z.ZodOptional<z.ZodString>;
            }, z.core.$strict>>;
            iamPolicy: z.ZodOptional<z.ZodObject<{
                Version: z.ZodString;
                Statement: z.ZodArray<z.ZodUnknown>;
            }, z.core.$loose>>;
        }, z.core.$strict>], "host">>;
        endpoint: z.ZodOptional<z.ZodString>;
        outboundAuth: z.ZodOptional<z.ZodObject<{
            type: z.ZodDefault<z.ZodEnum<{
                NONE: "NONE";
                OAUTH: "OAUTH";
                API_KEY: "API_KEY";
            }>>;
            credentialName: z.ZodOptional<z.ZodString>;
            scopes: z.ZodOptional<z.ZodArray<z.ZodString>>;
        }, z.core.$strict>>;
        apiGateway: z.ZodOptional<z.ZodObject<{
            restApiId: z.ZodString;
            stage: z.ZodString;
            apiGatewayToolConfiguration: z.ZodObject<{
                toolFilters: z.ZodArray<z.ZodObject<{
                    filterPath: z.ZodString;
                    methods: z.ZodArray<z.ZodEnum<{
                        GET: "GET";
                        POST: "POST";
                        PUT: "PUT";
                        DELETE: "DELETE";
                        PATCH: "PATCH";
                        HEAD: "HEAD";
                        OPTIONS: "OPTIONS";
                    }>>;
                }, z.core.$strict>>;
                toolOverrides: z.ZodOptional<z.ZodArray<z.ZodObject<{
                    name: z.ZodString;
                    path: z.ZodString;
                    method: z.ZodEnum<{
                        GET: "GET";
                        POST: "POST";
                        PUT: "PUT";
                        DELETE: "DELETE";
                        PATCH: "PATCH";
                        HEAD: "HEAD";
                        OPTIONS: "OPTIONS";
                    }>;
                    description: z.ZodOptional<z.ZodString>;
                }, z.core.$strict>>>;
            }, z.core.$strict>;
        }, z.core.$strict>>;
        schemaSource: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
            inline: z.ZodObject<{
                path: z.ZodString;
            }, z.core.$strict>;
        }, z.core.$strict>, z.ZodObject<{
            s3: z.ZodObject<{
                uri: z.ZodString;
                bucketOwnerAccountId: z.ZodOptional<z.ZodString>;
            }, z.core.$strict>;
        }, z.core.$strict>]>>;
        lambdaFunctionArn: z.ZodOptional<z.ZodObject<{
            lambdaArn: z.ZodString;
            toolSchemaFile: z.ZodString;
        }, z.core.$strict>>;
    }, z.core.$strict>>;
    authorizerType: z.ZodDefault<z.ZodEnum<{
        NONE: "NONE";
        AWS_IAM: "AWS_IAM";
        CUSTOM_JWT: "CUSTOM_JWT";
    }>>;
    authorizerConfiguration: z.ZodOptional<z.ZodObject<{
        customJwtAuthorizer: z.ZodOptional<z.ZodObject<{
            discoveryUrl: z.ZodString;
            allowedAudience: z.ZodOptional<z.ZodArray<z.ZodString>>;
            allowedClients: z.ZodOptional<z.ZodArray<z.ZodString>>;
            allowedScopes: z.ZodOptional<z.ZodArray<z.ZodString>>;
            customClaims: z.ZodOptional<z.ZodArray<z.ZodObject<{
                inboundTokenClaimName: z.ZodString;
                inboundTokenClaimValueType: z.ZodEnum<{
                    STRING: "STRING";
                    STRING_ARRAY: "STRING_ARRAY";
                }>;
                authorizingClaimMatchValue: z.ZodObject<{
                    claimMatchOperator: z.ZodEnum<{
                        EQUALS: "EQUALS";
                        CONTAINS: "CONTAINS";
                        CONTAINS_ANY: "CONTAINS_ANY";
                    }>;
                    claimMatchValue: z.ZodObject<{
                        matchValueString: z.ZodOptional<z.ZodString>;
                        matchValueStringList: z.ZodOptional<z.ZodArray<z.ZodString>>;
                    }, z.core.$strip>;
                }, z.core.$strip>;
            }, z.core.$strict>>>;
        }, z.core.$strict>>;
    }, z.core.$strip>>;
    enableSemanticSearch: z.ZodDefault<z.ZodBoolean>;
    exceptionLevel: z.ZodDefault<z.ZodEnum<{
        NONE: "NONE";
        DEBUG: "DEBUG";
    }>>;
    policyEngineConfiguration: z.ZodOptional<z.ZodObject<{
        policyEngineName: z.ZodString;
        mode: z.ZodEnum<{
            LOG_ONLY: "LOG_ONLY";
            ENFORCE: "ENFORCE";
        }>;
    }, z.core.$strict>>;
    executionRoleArn: z.ZodOptional<z.ZodString>;
    tags: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
}, z.core.$strict>;
export type AgentCoreGateway = z.infer<typeof AgentCoreGatewaySchema>;
/**
 * Binding from an MCP runtime tool to a runtime.
 * When present, the runtime is granted InvokeAgentRuntime permission
 * and receives the runtime ARN in the specified environment variable.
 */
export declare const McpRuntimeBindingSchema: z.ZodObject<{
    runtimeName: z.ZodString;
    envVarName: z.ZodString;
}, z.core.$strict>;
export type McpRuntimeBinding = z.infer<typeof McpRuntimeBindingSchema>;
/**
 * AgentCore MCP Runtime tool servers.
 *
 * These are not behind a Gateway. They are deployed as AgentCoreRuntime compute
 * and are directly addressable by agents via the generated DNS endpoint.
 *
 * Use the `bindings` array to grant agents permission to invoke this tool.
 * Each binding grants InvokeAgentRuntime permission and sets an environment variable
 * with the runtime ARN on the bound agent.
 */
export declare const AgentCoreMcpRuntimeToolSchema: z.ZodObject<{
    name: z.ZodString;
    toolDefinition: z.ZodObject<{
        name: z.ZodString;
        description: z.ZodString;
        inputSchema: z.ZodType<import("./mcp-defs").SchemaDefinition, unknown, z.core.$ZodTypeInternals<import("./mcp-defs").SchemaDefinition, unknown>>;
        outputSchema: z.ZodOptional<z.ZodType<import("./mcp-defs").SchemaDefinition, unknown, z.core.$ZodTypeInternals<import("./mcp-defs").SchemaDefinition, unknown>>>;
    }, z.core.$strict>;
    compute: z.ZodObject<{
        host: z.ZodLiteral<"AgentCoreRuntime">;
        implementation: z.ZodObject<{
            language: z.ZodEnum<{
                Python: "Python";
                TypeScript: "TypeScript";
            }>;
            path: z.ZodString;
            handler: z.ZodString;
        }, z.core.$strict>;
        runtime: z.ZodOptional<z.ZodObject<{
            artifact: z.ZodLiteral<"CodeZip">;
            pythonVersion: z.ZodEnum<{
                PYTHON_3_10: "PYTHON_3_10";
                PYTHON_3_11: "PYTHON_3_11";
                PYTHON_3_12: "PYTHON_3_12";
                PYTHON_3_13: "PYTHON_3_13";
                PYTHON_3_14: "PYTHON_3_14";
            }>;
            name: z.ZodString;
            entrypoint: z.ZodType<FilePath, unknown, z.core.$ZodTypeInternals<FilePath, unknown>>;
            codeLocation: z.ZodType<DirectoryPath, unknown, z.core.$ZodTypeInternals<DirectoryPath, unknown>>;
            instrumentation: z.ZodOptional<z.ZodObject<{
                enableOtel: z.ZodDefault<z.ZodBoolean>;
            }, z.core.$strip>>;
            networkMode: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
                PUBLIC: "PUBLIC";
                VPC: "VPC";
            }>>>;
            description: z.ZodOptional<z.ZodString>;
        }, z.core.$strict>>;
        iamPolicy: z.ZodOptional<z.ZodObject<{
            Version: z.ZodString;
            Statement: z.ZodArray<z.ZodUnknown>;
        }, z.core.$loose>>;
    }, z.core.$strict>;
    bindings: z.ZodOptional<z.ZodArray<z.ZodObject<{
        runtimeName: z.ZodString;
        envVarName: z.ZodString;
    }, z.core.$strict>>>;
}, z.core.$strict>;
export type AgentCoreMcpRuntimeTool = z.infer<typeof AgentCoreMcpRuntimeToolSchema>;
/**
 * Shape of MCP-related fields within AgentCoreProjectSpec.
 * These fields are now part of agentcore.json (previously in mcp.json).
 */
export interface AgentCoreMcpSpec {
    agentCoreGateways: AgentCoreGateway[];
    mcpRuntimeTools?: AgentCoreMcpRuntimeTool[];
    unassignedTargets?: AgentCoreGatewayTarget[];
}
export {};
//# sourceMappingURL=mcp.d.ts.map