/** * Standardized validation helpers for input validation across all tools. * Provides consistent error messages and validation logic. */ import { type Result } from '../types'; /** * Options for path validation */ export interface PathValidationOptions { /** Path must exist on filesystem */ mustExist?: boolean; /** Path must be a directory */ mustBeDirectory?: boolean; /** Path must be a file */ mustBeFile?: boolean; /** Path must be readable */ readable?: boolean; /** Path must be writable (or parent directory writable if path doesn't exist) */ writable?: boolean; } /** * Validate and resolve file path * * Ensures paths are absolute and optionally validates existence and type. * Always returns absolute paths for consistent tool behavior. * * @param pathStr - Path to validate (relative or absolute) * @param options - Validation options * @returns Validated absolute path or error * * @example * ```typescript * const result = await validatePath('./src', { mustExist: true, mustBeDirectory: true }); * if (result.ok) { * console.log('Valid directory:', result.value); * } * ``` */ export declare function validatePath(pathStr: string, options?: PathValidationOptions): Promise>; /** * Validate Docker image name format * * Validates image names according to Docker naming conventions. * Supports: [registry/][namespace/]repository:tag * * @param imageName - Docker image name to validate * @returns Validated image name or error * * @example * ```typescript * validateImageName('myapp:latest') // Valid * validateImageName('docker.io/library/node:18') // Valid * validateImageName('INVALID NAME') // Invalid * ``` */ export declare function validateImageName(imageName: string): Result; /** * Validate Kubernetes resource name * * Validates resource names according to Kubernetes naming conventions (DNS-1123). * Names must be lowercase alphanumeric with hyphens, max 253 characters. * * @param name - Kubernetes resource name to validate * @returns Validated name or error * * @example * ```typescript * validateK8sName('my-app') // Valid * validateK8sName('my-app-123') // Valid * validateK8sName('MyApp') // Invalid (uppercase) * validateK8sName('my_app') // Invalid (underscore) * ``` */ export declare function validateK8sName(name: string): Result; /** * Validate environment variable name * * Validates environment variable names according to POSIX conventions. * Names must be uppercase letters, numbers, and underscores, starting with a letter or underscore. * * @param name - Environment variable name to validate * @returns Validated name or error * * @example * ```typescript * validateEnvName('MY_VAR') // Valid * validateEnvName('API_KEY_123') // Valid * validateEnvName('my-var') // Invalid (lowercase, hyphen) * validateEnvName('123_VAR') // Invalid (starts with number) * ``` */ export declare function validateEnvName(name: string): Result; /** * Validate port number * * Validates that a port is within valid range (1-65535). * * @param port - Port number to validate * @returns Validated port number or error * * @example * ```typescript * validatePort(8080) // Valid * validatePort(443) // Valid * validatePort(0) // Invalid (too low) * validatePort(70000) // Invalid (too high) * ``` */ export declare function validatePort(port: number): Result; /** * Validate namespace (relaxed Kubernetes name for namespaces) * * Similar to validateK8sName but specifically for namespaces. * Namespaces have the same rules as general K8s names but max 63 characters. * * @param namespace - Kubernetes namespace to validate * @returns Validated namespace or error * * @example * ```typescript * validateNamespace('production') // Valid * validateNamespace('my-app-prod') // Valid * validateNamespace('Prod') // Invalid (uppercase) * ``` */ export declare function validateNamespace(namespace: string): Result; /** * Validate Docker tag * * Validates Docker image tags according to Docker conventions. * Tags can contain alphanumeric, periods, hyphens, and underscores, max 128 characters. * * @param tag - Docker tag to validate * @returns Validated tag or error * * @example * ```typescript * validateDockerTag('latest') // Valid * validateDockerTag('v1.0.0') // Valid * validateDockerTag('1.0.0-alpha.1') // Valid * validateDockerTag('UPPERCASE') // Invalid (uppercase not allowed) * ``` */ export declare function validateDockerTag(tag: string): Result; //# sourceMappingURL=validation.d.ts.map