import type { DirectoryPath, FilePath } from '../types';
import { z } from 'zod';
export type { DirectoryPath, FilePath, PathType } from '../types';
export type { PythonRuntime, NodeRuntime, RuntimeVersion, NetworkMode, ProtocolMode } from '../constants';
export declare const AgentNameSchema: z.ZodString;
export declare const EnvVarNameSchema: z.ZodString;
export declare const GatewayNameSchema: z.ZodString;
/** Access level for resource sharing */
export declare const AccessSchema: z.ZodEnum<{
    read: "read";
    readwrite: "readwrite";
}>;
export type Access = z.infer<typeof AccessSchema>;
export declare const AgentTypeSchema: z.ZodLiteral<"AgentCoreRuntime">;
export type AgentType = z.infer<typeof AgentTypeSchema>;
export declare const BuildTypeSchema: z.ZodEnum<{
    CodeZip: "CodeZip";
    Container: "Container";
}>;
export type BuildType = z.infer<typeof BuildTypeSchema>;
/**
 * Entrypoint schema - supports both Python (.py) and TypeScript (.ts/.js) files.
 * Python: main.py or main.py:handler
 * TypeScript: main.ts, main.js, or index.ts
 */
export declare const EntrypointSchema: z.ZodType<FilePath>;
export declare const EnvVarSchema: z.ZodObject<{
    name: z.ZodString;
    value: z.ZodString;
}, z.core.$strip>;
export type EnvVar = z.infer<typeof EnvVarSchema>;
/**
 * Instrumentation configuration for runtime observability.
 */
export declare const InstrumentationSchema: z.ZodObject<{
    enableOtel: z.ZodDefault<z.ZodBoolean>;
}, z.core.$strip>;
export type Instrumentation = z.infer<typeof InstrumentationSchema>;
/**
 * Network configuration for VPC mode.
 * Required when networkMode is 'VPC'.
 */
export declare const NetworkConfigSchema: z.ZodObject<{
    subnets: z.ZodArray<z.ZodString>;
    securityGroups: z.ZodArray<z.ZodString>;
}, z.core.$strip>;
export type NetworkConfig = z.infer<typeof NetworkConfigSchema>;
/**
 * Allowed request headers for the runtime.
 * Per https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/runtime-header-allowlist.html
 * any valid HTTP header name (alphanumeric, hyphens, underscores) may be allow-listed,
 * provided it is not structurally reserved (x-amz-*, x-amzn-* except Runtime-Custom-*).
 * Maximum 20 headers.
 */
export declare const HEADER_ALLOWLIST_PREFIX = "X-Amzn-Bedrock-AgentCore-Runtime-Custom-";
export declare const HEADER_NAME_PATTERN: RegExp;
export declare const MAX_HEADER_ALLOWLIST_SIZE = 20;
/**
 * Validate a single allowlist header name. Returns null if valid, or a specific
 * error message describing which rule the input violated.
 *
 * Note: 'x-amz-' and 'x-amzn-' are disjoint prefixes (position 5 differs: '-' vs 'n'),
 * so the two checks below are independent.
 */
export declare function checkAllowlistHeader(val: string): string | null;
export declare const RequestHeaderAllowlistSchema: z.ZodArray<z.ZodString>;
/**
 * Session storage configuration for filesystem persistence.
 * Files written to mountPath persist across session stop/resume cycles.
 */
export declare const SessionStorageSchema: z.ZodObject<{
    mountPath: z.ZodString;
}, z.core.$strip>;
export type SessionStorage = z.infer<typeof SessionStorageSchema>;
export declare const FilesystemConfigurationSchema: z.ZodObject<{
    sessionStorage: z.ZodObject<{
        mountPath: z.ZodString;
    }, z.core.$strip>;
}, z.core.$strip>;
export type FilesystemConfiguration = z.infer<typeof FilesystemConfigurationSchema>;
/** Minimum allowed value for lifecycle timeout fields (seconds). */
export declare const LIFECYCLE_TIMEOUT_MIN = 60;
/** Maximum allowed value for lifecycle timeout fields (seconds). */
export declare const LIFECYCLE_TIMEOUT_MAX = 28800;
/**
 * Lifecycle configuration for runtime sessions.
 * Controls idle timeout and max lifetime of runtime instances.
 */
export declare const LifecycleConfigurationSchema: z.ZodObject<{
    idleRuntimeSessionTimeout: z.ZodOptional<z.ZodNumber>;
    maxLifetime: z.ZodOptional<z.ZodNumber>;
}, z.core.$strip>;
export type LifecycleConfiguration = z.infer<typeof LifecycleConfigurationSchema>;
/**
 * Endpoint name follows the AgentCore API regex for endpoint aliases.
 */
export declare const RuntimeEndpointNameSchema: z.ZodString;
export declare const RuntimeEndpointSchema: z.ZodObject<{
    version: z.ZodNumber;
    description: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
export type RuntimeEndpoint = z.infer<typeof RuntimeEndpointSchema>;
/**
 * AgentEnvSpec - represents an AgentCore Runtime.
 * This is a top-level resource in the schema.
 */
export declare const AgentEnvSpecSchema: z.ZodObject<{
    name: z.ZodString;
    description: z.ZodOptional<z.ZodString>;
    build: z.ZodEnum<{
        CodeZip: "CodeZip";
        Container: "Container";
    }>;
    entrypoint: z.ZodType<FilePath, unknown, z.core.$ZodTypeInternals<FilePath, unknown>>;
    codeLocation: z.ZodType<DirectoryPath, unknown, z.core.$ZodTypeInternals<DirectoryPath, unknown>>;
    dockerfile: z.ZodOptional<z.ZodString>;
    runtimeVersion: z.ZodOptional<z.ZodUnion<readonly [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";
    }>, z.ZodEnum<{
        NODE_18: "NODE_18";
        NODE_20: "NODE_20";
        NODE_22: "NODE_22";
    }>]>>;
    envVars: z.ZodOptional<z.ZodArray<z.ZodObject<{
        name: z.ZodString;
        value: z.ZodString;
    }, z.core.$strip>>>;
    networkMode: z.ZodOptional<z.ZodEnum<{
        PUBLIC: "PUBLIC";
        VPC: "VPC";
    }>>;
    networkConfig: z.ZodOptional<z.ZodObject<{
        subnets: z.ZodArray<z.ZodString>;
        securityGroups: z.ZodArray<z.ZodString>;
    }, z.core.$strip>>;
    instrumentation: z.ZodOptional<z.ZodObject<{
        enableOtel: z.ZodDefault<z.ZodBoolean>;
    }, z.core.$strip>>;
    protocol: z.ZodOptional<z.ZodEnum<{
        HTTP: "HTTP";
        MCP: "MCP";
        A2A: "A2A";
        AGUI: "AGUI";
    }>>;
    requestHeaderAllowlist: z.ZodOptional<z.ZodArray<z.ZodString>>;
    executionRoleArn: z.ZodOptional<z.ZodString>;
    authorizerType: z.ZodOptional<z.ZodEnum<{
        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>>;
    tags: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
    lifecycleConfiguration: z.ZodOptional<z.ZodObject<{
        idleRuntimeSessionTimeout: z.ZodOptional<z.ZodNumber>;
        maxLifetime: z.ZodOptional<z.ZodNumber>;
    }, z.core.$strip>>;
    filesystemConfigurations: z.ZodOptional<z.ZodArray<z.ZodObject<{
        sessionStorage: z.ZodObject<{
            mountPath: z.ZodString;
        }, z.core.$strip>;
    }, z.core.$strip>>>;
    endpoints: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
        version: z.ZodNumber;
        description: z.ZodOptional<z.ZodString>;
    }, z.core.$strip>>>;
}, z.core.$strip>;
export type AgentEnvSpec = z.infer<typeof AgentEnvSpecSchema>;
//# sourceMappingURL=agent-env.d.ts.map