/** * Input validation utilities for API parameters * Provides runtime type checking and sanitization */ /** * Validate that latitude is a valid number within range * @param lat - Latitude value to validate * @throws {Error} If latitude is invalid */ export declare function validateLatitude(lat: unknown): asserts lat is number; /** * Validate that longitude is a valid number within range * @param lon - Longitude value to validate * @throws {Error} If longitude is invalid */ export declare function validateLongitude(lon: unknown): asserts lon is number; /** * Validate coordinate pair * @param args - Arguments object potentially containing coordinates * @returns Validated coordinates * @throws {Error} If coordinates are invalid */ export declare function validateCoordinates(args: unknown): { latitude: number; longitude: number; }; /** * Validate a positive integer within optional range * @param value - Value to validate * @param name - Parameter name for error messages * @param min - Minimum allowed value (inclusive) * @param max - Maximum allowed value (inclusive) * @returns Validated number * @throws {Error} If value is invalid */ export declare function validatePositiveInteger(value: unknown, name: string, min?: number, max?: number): number; /** * Validate a boolean value * @param value - Value to validate * @param name - Parameter name for error messages * @returns Validated boolean * @throws {Error} If value is invalid */ export declare function validateBoolean(value: unknown, name: string): boolean; /** * Validate a date string in ISO format * @param value - Value to validate * @param name - Parameter name for error messages * @returns Validated date string * @throws {Error} If value is invalid */ export declare function validateDateString(value: unknown, name: string): string; /** * Validate forecast days parameter * @param args - Arguments object potentially containing days parameter * @returns Validated days value (defaults to 7 if not provided) * @throws {Error} If days parameter is invalid */ export declare function validateForecastDays(args: unknown): number; /** * Validate granularity parameter * @param value - Value to validate * @returns Validated granularity ('daily' or 'hourly') * @throws {Error} If value is invalid */ export declare function validateGranularity(value: unknown): 'daily' | 'hourly'; /** * Output verbosity levels for high-volume weather tools. * - summary: shortest useful answer (fewest entries, headline-only) * - standard: sensible default balancing detail and token cost * - full: everything the source provides (long descriptions, all entries) */ export type DetailLevel = 'summary' | 'standard' | 'full'; /** * Validate the shared `detail` output-control parameter. * @param value - Value to validate (from tool args) * @param defaultValue - Level to use when omitted (defaults to 'standard') * @returns Validated detail level * @throws {Error} If value is present but not a valid level */ export declare function validateDetail(value: unknown, defaultValue?: DetailLevel): DetailLevel; /** * Validate optional boolean with default * @param value - Value to validate * @param name - Parameter name for error messages * @param defaultValue - Default value if undefined * @returns Validated boolean * @throws {Error} If value is invalid */ export declare function validateOptionalBoolean(value: unknown, name: string, defaultValue: boolean): boolean; /** * Validate historical weather parameters * @param args - Arguments object * @returns Validated parameters * @throws {Error} If parameters are invalid */ export declare function validateHistoricalWeatherParams(args: unknown): { latitude: number; longitude: number; start_date: string; end_date: string; limit?: number; }; //# sourceMappingURL=validation.d.ts.map