/**
 * Utility functions for API parameter validation
 *
 * @module api/utils/validation
 */
/**
 * Validates that an authentication token is provided and is a valid JWT format
 * @param token - The authentication token to validate
 * @throws {Error} If the token is missing, null, undefined, empty/whitespace, or not a valid JWT format
 */
export declare const validateToken: (token: string | undefined | null) => void;
/**
 * Validates that a required parameter is provided
 * @param value - The value to validate
 * @param paramName - The name of the parameter for error messages
 * @throws {Error} If the value is missing, null, or undefined
 */
export declare const validateRequired: (value: any, paramName: string) => void;
/**
 * Validates that a string parameter is provided and not empty
 * @param value - The string value to validate
 * @param paramName - The name of the parameter for error messages
 * @throws {Error} If the value is missing, null, undefined, or empty/whitespace
 */
export declare const validateRequiredString: (value: string | undefined | null, paramName: string) => void;
/**
 * Validates that all properties in an object are defined (not undefined).
 * Recursively checks nested objects and arrays to ensure complete data integrity.
 * This is used to validate model toJSON() outputs and ensure Client contract compliance.
 *
 * @param obj - The object to validate
 * @param modelName - Name of the model class for error messages (e.g., 'Runtime')
 * @param path - Current property path for recursive validation (internal use)
 * @throws {Error} If any property value is undefined, with full path to the undefined property
 *
 * @example
 * ```typescript
 * const runtimeData = {
 *   uid: 'abc123',
 *   podName: 'my-pod',
 *   environmentName: undefined  // This will throw
 * };
 * validateJSON(runtimeData, 'Runtime');
 * // Error: Runtime.toJSON(): Property 'environmentName' is undefined
 * ```
 */
export declare const validateJSON: (obj: Record<string, any>, modelName: string, path?: string) => void;
