/** * Adapter Contract Validation * * Validates that an object implements the Adapter interface correctly. * Checks for required methods, optional methods, and proper signatures. */ import type { Adapter } from "@wavespec/types"; /** * Validation result * * Indicates whether validation passed and provides detailed error messages. */ export interface ValidationResult { /** Whether validation passed */ valid: boolean; /** Validation error messages (if any) */ errors: string[]; } /** * Adapter contract validator * * Validates that an object conforms to the Adapter interface contract. * Checks for required properties (name, version, run) and optional methods * (handshake, connect, disconnect, isConnected, preValidate, stream, reset). * * @param adapter - The object to validate as an Adapter * @returns Validation result with detailed error messages * * @example * ```typescript * const result = validateAdapterContract(myAdapter); * if (!result.valid) { * console.error("Adapter validation failed:"); * result.errors.forEach(err => console.error(` - ${err}`)); * } * ``` */ export declare function validateAdapterContract(adapter: unknown): ValidationResult; /** * Type guard for Adapter interface * * Checks if an object implements the Adapter interface. * This is a runtime check that performs full contract validation. * * @param adapter - The object to check * @returns True if the object is a valid Adapter * * @example * ```typescript * if (isAdapter(obj)) { * // TypeScript now knows obj is an Adapter * await obj.run(spec, ctx); * } * ``` */ export declare function isAdapter(adapter: unknown): adapter is Adapter; //# sourceMappingURL=adapter-contract.d.ts.map