/**
 * JSON Schema Validation Module
 * Validates JSON structures to prevent injection attacks
 */
/**
 * User session schema
 */
export interface UserSessionSchema {
    username: string;
    loggedInAt: number;
    lastActivityAt: number;
    expiresAt: number;
    gatewayUrl?: string;
}
/**
 * Custom agent schema
 */
export interface CustomAgentSchema {
    id: string;
    name: string;
    systemPrompt?: string;
    temperature?: number;
    maxTokens?: number;
    topP?: number;
    frequencyPenalty?: number;
    presencePenalty?: number;
    tools?: string[];
    useLocalModel?: boolean;
    localModelProvider?: string;
    localModelName?: string;
    localModelUrl?: string;
}
/**
 * Custom tool schema
 */
export interface CustomToolSchema {
    id: string;
    name: string;
    description: string;
    code: string;
    createdAt?: number;
}
/**
 * Config schema
 */
export interface ConfigSchema {
    autoUpdate?: boolean;
    updateCheck?: boolean;
    [key: string]: any;
}
/**
 * Validate user session
 */
export declare function validateUserSession(data: any): {
    valid: boolean;
    error?: string;
    data?: UserSessionSchema;
};
/**
 * Validate custom agent
 */
export declare function validateCustomAgent(data: any): {
    valid: boolean;
    error?: string;
    data?: CustomAgentSchema;
};
/**
 * Validate custom tool
 */
export declare function validateCustomTool(data: any): {
    valid: boolean;
    error?: string;
    data?: CustomToolSchema;
};
/**
 * Validate config
 */
export declare function validateConfig(data: any): {
    valid: boolean;
    error?: string;
    data?: ConfigSchema;
};
/**
 * Sanitize package name (prevent command injection)
 */
export declare function sanitizePackageName(name: string): {
    valid: boolean;
    error?: string;
    sanitized?: string;
};
/**
 * Safe JSON parse with validation
 */
export declare function safeJsonParse<T>(json: string, validator: (data: any) => {
    valid: boolean;
    error?: string;
    data?: T;
}): {
    success: boolean;
    error?: string;
    data?: T;
};
//# sourceMappingURL=validation.d.ts.map