/**
 * Type guards and validation utilities for runtime type safety
 * These guards ensure type safety at critical boundaries (IPC, serialization, etc.)
 */
import { AdapterCommand } from '../adapters/debug-adapter-interface.js';
import { ProxyInitPayload } from '../proxy/dap-proxy-interfaces.js';
/**
 * Type guard for AdapterCommand
 * Validates that an object has the required structure for an adapter command
 */
export declare function isValidAdapterCommand(obj: unknown): obj is AdapterCommand;
/**
 * Validates and returns a typed AdapterCommand
 * Throws descriptive error if validation fails
 */
export declare function validateAdapterCommand(obj: unknown, source: string): AdapterCommand;
/**
 * Type guard for ProxyInitPayload adapter command
 * Validates the optional adapterCommand field
 */
export declare function hasValidAdapterCommand(payload: ProxyInitPayload): boolean;
/**
 * Validates ProxyInitPayload
 * Ensures all required fields are present and valid
 */
export declare function validateProxyInitPayload(payload: unknown): ProxyInitPayload;
/**
 * Safely serialize adapter command for IPC
 * Validates before serialization to prevent undefined propagation
 */
export declare function serializeAdapterCommand(cmd: AdapterCommand): string;
/**
 * Safely deserialize adapter command from IPC
 * Validates after parsing to ensure type safety
 */
export declare function deserializeAdapterCommand(data: string, source: string): AdapterCommand;
/**
 * Create a type-safe adapter command with defaults
 * Ensures all required fields are present
 */
export declare function createAdapterCommand(command: string, args?: string[], env?: Record<string, string>): AdapterCommand;
/**
 * Type-safe property access for adapter commands
 * Prevents accessing properties on undefined
 */
export declare function getAdapterCommandProperty<K extends keyof AdapterCommand>(cmd: unknown, property: K, defaultValue: AdapterCommand[K]): AdapterCommand[K];
/**
 * Logging utility for adapter command validation
 * Provides consistent logging format
 */
export declare function logAdapterCommandValidation(cmd: unknown, source: string, isValid: boolean, details?: unknown): void;
