/**
 * @module config-validation
 * Configuration validation for xBind agent initialization.
 *
 * Provides schema validation, type checking, and clear error messages
 * for AgentOptions and AgentCreateOptions to enhance configuration safety
 * and improve developer experience.
 *
 * @example
 * ```typescript
 * import { validateAgentOptions, validateAgentCreateOptions } from '@private.me/xbind';
 *
 * // Validate simplified options
 * const simpleResult = validateAgentOptions({
 *   identity: 'persistent',
 *   registry: 'https://private.me/registry'
 * });
 *
 * if (!simpleResult.ok) {
 *   console.error(simpleResult.error); // Clear, actionable error message
 * }
 *
 * // Validate full options
 * const fullResult = validateAgentCreateOptions({
 *   name: 'my-agent',
 *   registry: myRegistryInstance,
 *   transport: myTransportAdapter
 * });
 * ```
 */
import type { Result } from '@private.me/shared';
import type { AgentOptions, AgentCreateOptions } from './agent.js';
import { XBindError } from './errors.js';
/**
 * Configuration validation error with detailed context.
 */
export declare class ConfigValidationError extends XBindError {
    /** Field that failed validation */
    readonly field: string;
    /** Expected value/type */
    readonly expected: string;
    /** Actual value received */
    readonly actual: unknown;
    /** Suggested fix */
    readonly fix: string;
    constructor(field: string, expected: string, actual: unknown, fix: string);
}
/**
 * Validation result with detailed error information.
 */
export interface ValidationResult {
    /** Whether validation passed */
    valid: boolean;
    /** Validation errors (if any) */
    errors: ConfigValidationError[];
    /** Warnings (non-blocking issues) */
    warnings: string[];
}
/**
 * Default values for AgentOptions.
 */
export declare const AGENT_OPTIONS_DEFAULTS: {
    readonly identity: "persistent";
    readonly identityTTL: 3600000;
    readonly postQuantumSig: false;
};
/**
 * Default values for AgentCreateOptions.
 */
export declare const AGENT_CREATE_OPTIONS_DEFAULTS: {
    readonly timestampWindowMs: 30000;
    readonly postQuantumSig: false;
    readonly xchange: false;
    readonly scopes: string[];
};
/**
 * Validate AgentOptions configuration.
 *
 * Checks all fields for correct types, valid values, and logical consistency.
 * Provides clear, actionable error messages for any validation failures.
 *
 * @param options - AgentOptions to validate
 * @returns Result with validation errors or success
 *
 * @example
 * ```typescript
 * const result = validateAgentOptions({
 *   identity: 'persistent',
 *   registry: 'https://private.me/registry',
 *   identityTTL: 7200000 // 2 hours
 * });
 *
 * if (result.ok) {
 *   console.log('Configuration valid!');
 * } else {
 *   console.error(result.error);
 * }
 * ```
 */
export declare function validateAgentOptions(options: unknown): Result<AgentOptions, ConfigValidationError>;
/**
 * Validate AgentCreateOptions configuration.
 *
 * Checks all fields for correct types, valid values, and logical consistency.
 * Provides clear, actionable error messages for any validation failures.
 *
 * @param options - AgentCreateOptions to validate
 * @returns Result with validation errors or success
 *
 * @example
 * ```typescript
 * const result = validateAgentCreateOptions({
 *   name: 'my-agent',
 *   registry: new MemoryTrustRegistry(),
 *   transport: new HttpsTransportAdapter(),
 *   timestampWindowMs: 60000 // 1 minute
 * });
 *
 * if (result.ok) {
 *   console.log('Configuration valid!');
 * } else {
 *   console.error(result.error);
 * }
 * ```
 */
export declare function validateAgentCreateOptions(options: unknown): Result<AgentCreateOptions, ConfigValidationError>;
/**
 * Get detailed validation result with all errors and warnings.
 *
 * Unlike the Result-based validators, this function returns all validation
 * issues at once for comprehensive feedback.
 *
 * @param options - AgentOptions to validate
 * @returns ValidationResult with all errors and warnings
 *
 * @example
 * ```typescript
 * const result = getValidationDetails({
 *   identity: 'invalid',
 *   identityTTL: -100,
 *   postQuantumSig: 'yes' // type error
 * });
 *
 * console.log(`Valid: ${result.valid}`);
 * console.log(`Errors: ${result.errors.length}`);
 * console.log(`Warnings: ${result.warnings.length}`);
 *
 * result.errors.forEach(err => {
 *   console.error(`- ${err.field}: ${err.message}`);
 * });
 * ```
 */
export declare function getValidationDetails(options: unknown): ValidationResult;
/**
 * Validate configuration and throw on error.
 *
 * Convenience function that validates configuration and throws
 * ConfigValidationError if validation fails.
 *
 * @param options - AgentOptions or AgentCreateOptions to validate
 * @throws ConfigValidationError if validation fails
 *
 * @example
 * ```typescript
 * try {
 *   assertValidConfig({
 *     identity: 'persistent',
 *     registry: 'https://private.me/registry'
 *   });
 *   // Configuration is valid, continue
 * } catch (err) {
 *   if (err instanceof ConfigValidationError) {
 *     console.error(`Invalid ${err.field}: ${err.fix}`);
 *   }
 * }
 * ```
 */
export declare function assertValidConfig(options: unknown): asserts options is AgentOptions;
/**
 * Validate configuration and throw on error (full options).
 *
 * @param options - AgentCreateOptions to validate
 * @throws ConfigValidationError if validation fails
 */
export declare function assertValidCreateConfig(options: unknown): asserts options is AgentCreateOptions;
