import { z } from 'zod';

/**
 * Shared HTTP Schemas
 *
 * Common HTTP-related schemas used across API and System protocols.
 * These schemas ensure consistency across different parts of the stack.
 */
/**
 * HTTP Method Enum
 */
declare const HttpMethod: z.ZodEnum<{
    GET: "GET";
    POST: "POST";
    PUT: "PUT";
    DELETE: "DELETE";
    PATCH: "PATCH";
    HEAD: "HEAD";
    OPTIONS: "OPTIONS";
}>;
type HttpMethod = z.infer<typeof HttpMethod>;
/**
 * HTTP Method Schema (subset for UI/View data sources)
 * Common HTTP methods used in view data source configurations.
 * Migrated from ui/view.zod.ts to shared for reuse across modules.
 */
declare const HttpMethodSchema: z.ZodEnum<{
    GET: "GET";
    POST: "POST";
    PUT: "PUT";
    DELETE: "DELETE";
    PATCH: "PATCH";
}>;
type HttpMethodType = z.infer<typeof HttpMethodSchema>;
/**
 * HTTP Request Configuration Schema
 * Defines a complete HTTP request configuration used by API data providers.
 * Migrated from ui/view.zod.ts to shared for reuse across modules.
 */
declare const HttpRequestSchema: z.ZodObject<{
    url: z.ZodString;
    method: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
        GET: "GET";
        POST: "POST";
        PUT: "PUT";
        DELETE: "DELETE";
        PATCH: "PATCH";
    }>>>;
    headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
    params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
    body: z.ZodOptional<z.ZodUnknown>;
}, z.core.$strip>;
type HttpRequest = z.infer<typeof HttpRequestSchema>;
/**
 * CORS Configuration Schema
 * Cross-Origin Resource Sharing configuration
 *
 * Used by:
 * - api/router.zod.ts (RouterConfigSchema)
 * - system/http-server.zod.ts (HttpServerConfigSchema)
 *
 * @example
 * {
 *   "enabled": true,
 *   "origins": ["http://localhost:3000", "https://app.example.com"],
 *   "methods": ["GET", "POST", "PUT", "DELETE"],
 *   "credentials": true,
 *   "maxAge": 86400
 * }
 */
declare const CorsConfigSchema: z.ZodObject<{
    enabled: z.ZodDefault<z.ZodBoolean>;
    origins: z.ZodDefault<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
    methods: z.ZodOptional<z.ZodArray<z.ZodEnum<{
        GET: "GET";
        POST: "POST";
        PUT: "PUT";
        DELETE: "DELETE";
        PATCH: "PATCH";
        HEAD: "HEAD";
        OPTIONS: "OPTIONS";
    }>>>;
    credentials: z.ZodDefault<z.ZodBoolean>;
    maxAge: z.ZodOptional<z.ZodNumber>;
}, z.core.$strip>;
type CorsConfig = z.infer<typeof CorsConfigSchema>;
/**
 * Rate Limit Configuration Schema
 *
 * Used by:
 * - api/endpoint.zod.ts (ApiEndpointSchema)
 * - system/http-server.zod.ts (HttpServerConfigSchema)
 *
 * @example
 * {
 *   "enabled": true,
 *   "windowMs": 60000,
 *   "maxRequests": 100
 * }
 */
declare const RateLimitConfigSchema: z.ZodObject<{
    enabled: z.ZodDefault<z.ZodBoolean>;
    windowMs: z.ZodDefault<z.ZodNumber>;
    maxRequests: z.ZodDefault<z.ZodNumber>;
}, z.core.$strip>;
type RateLimitConfig = z.infer<typeof RateLimitConfigSchema>;
/**
 * Static Mount Configuration Schema
 * Configuration for serving static files
 *
 * Used by:
 * - api/router.zod.ts (RouterConfigSchema)
 * - system/http-server.zod.ts (HttpServerConfigSchema)
 *
 * @example
 * {
 *   "path": "/static",
 *   "directory": "./public",
 *   "cacheControl": "public, max-age=31536000"
 * }
 */
declare const StaticMountSchema: z.ZodObject<{
    path: z.ZodString;
    directory: z.ZodString;
    cacheControl: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
type StaticMount = z.infer<typeof StaticMountSchema>;

export { type CorsConfig as C, HttpMethod as H, type RateLimitConfig as R, type StaticMount as S, CorsConfigSchema as a, HttpMethodSchema as b, type HttpMethodType as c, type HttpRequest as d, HttpRequestSchema as e, RateLimitConfigSchema as f, StaticMountSchema as g };
