/**
 * Request Validation Utilities
 * Provides Zod schemas and validation helpers for server routes
 */
import { z } from "zod";
import type { ErrorResponse, ServerValidationResult } from "../../types/index.js";
/**
 * Agent execute request schema
 */
export declare const AgentExecuteRequestSchema: z.ZodObject<{
    input: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
        text: z.ZodString;
        images: z.ZodOptional<z.ZodArray<z.ZodString>>;
        files: z.ZodOptional<z.ZodArray<z.ZodString>>;
    }, z.core.$strip>]>;
    provider: z.ZodOptional<z.ZodString>;
    model: z.ZodOptional<z.ZodString>;
    systemPrompt: z.ZodOptional<z.ZodString>;
    temperature: z.ZodOptional<z.ZodNumber>;
    maxTokens: z.ZodOptional<z.ZodNumber>;
    tools: z.ZodOptional<z.ZodArray<z.ZodString>>;
    stream: z.ZodOptional<z.ZodBoolean>;
    sessionId: z.ZodOptional<z.ZodString>;
    userId: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
/**
 * Tool execute request schema
 */
export declare const ToolExecuteRequestSchema: z.ZodObject<{
    name: z.ZodString;
    arguments: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
    sessionId: z.ZodOptional<z.ZodString>;
    userId: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
/**
 * Tool arguments schema (for direct tool execution)
 */
export declare const ToolArgumentsSchema: z.ZodRecord<z.ZodString, z.ZodUnknown>;
/**
 * Memory session ID parameter schema
 */
export declare const SessionIdParamSchema: z.ZodObject<{
    sessionId: z.ZodString;
}, z.core.$strip>;
/**
 * MCP server name parameter schema
 */
export declare const ServerNameParamSchema: z.ZodObject<{
    name: z.ZodString;
}, z.core.$strip>;
/**
 * Tool name parameter schema
 */
export declare const ToolNameParamSchema: z.ZodObject<{
    name: z.ZodString;
}, z.core.$strip>;
/**
 * Tool search query schema
 */
export declare const ToolSearchQuerySchema: z.ZodObject<{
    q: z.ZodOptional<z.ZodString>;
    source: z.ZodOptional<z.ZodString>;
    limit: z.ZodOptional<z.ZodPipe<z.ZodPipe<z.ZodString, z.ZodTransform<number, string>>, z.ZodNumber>>;
}, z.core.$strip>;
/**
 * Generic ID parameter schema (for session endpoints using :id)
 */
export declare const IdParamSchema: z.ZodObject<{
    id: z.ZodString;
}, z.core.$strip>;
/**
 * Sessions list query schema (with optional pagination and filtering)
 */
export declare const SessionsListQuerySchema: z.ZodObject<{
    userId: z.ZodOptional<z.ZodString>;
    limit: z.ZodOptional<z.ZodPipe<z.ZodPipe<z.ZodString, z.ZodTransform<number, string>>, z.ZodNumber>>;
    offset: z.ZodOptional<z.ZodPipe<z.ZodPipe<z.ZodString, z.ZodTransform<number, string>>, z.ZodNumber>>;
}, z.core.$strip>;
/**
 * Session messages query schema (for pagination)
 */
export declare const SessionMessagesQuerySchema: z.ZodObject<{
    limit: z.ZodOptional<z.ZodPipe<z.ZodPipe<z.ZodString, z.ZodTransform<number, string>>, z.ZodNumber>>;
    offset: z.ZodOptional<z.ZodPipe<z.ZodPipe<z.ZodString, z.ZodTransform<number, string>>, z.ZodNumber>>;
}, z.core.$strip>;
/**
 * Embed request schema (single text)
 */
export declare const EmbedRequestSchema: z.ZodObject<{
    text: z.ZodString;
    provider: z.ZodOptional<z.ZodString>;
    model: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
/**
 * Embed many request schema (batch texts)
 */
export declare const EmbedManyRequestSchema: z.ZodObject<{
    texts: z.ZodArray<z.ZodString>;
    provider: z.ZodOptional<z.ZodString>;
    model: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
/**
 * Type guard to check if a value is an ErrorResponse
 */
export declare function isErrorResponse(value: unknown): value is ErrorResponse;
/**
 * Create a standardized error response
 */
export declare function createErrorResponse(code: string, message: string, details?: unknown, requestId?: string, httpStatus?: number): ErrorResponse;
/**
 * Validate request body against a Zod schema
 */
export declare function validateRequest<T>(schema: z.ZodSchema<T>, data: unknown, requestId?: string): ServerValidationResult<T>;
/**
 * Validate query parameters against a Zod schema
 */
export declare function validateQuery<T>(schema: z.ZodSchema<T>, query: Record<string, string>, requestId?: string): ServerValidationResult<T>;
/**
 * Validate path parameters against a Zod schema
 */
export declare function validateParams<T>(schema: z.ZodSchema<T>, params: Record<string, string>, requestId?: string): ServerValidationResult<T>;
