/**
 * Contract Validator
 *
 * PURPOSE: Single validation boundary for all CLI commands.
 * Uses Ajv in STRICT mode - no coercion, no defaults, no bypass.
 *
 * RULES:
 * - Invalid requests FAIL LOCALLY (no network call)
 * - Invalid responses FAIL HARD (missing execution proof = reject)
 * - Responses MUST have execution_metadata AND multi-layer proof
 * - Multi-layer proof: layers_executed array AND/OR execution_graph
 * - No soft-fail behavior
 * - No bypass flags
 */
import { CLIError } from '../errors/index.js';
import { RequestSchemas, ResponseSchemas } from './schemas/index.js';
export type { PlanRequestContract, ManifestsRequestContract, SimulateRequestContract, ScenarioObject, ScenarioStep, InspectRequestContract, QuantifyRequestContract, DeployRequestContract, ExportRequestContract, DiligenceRequestContract, ExecutionMetadata, LayerExecutionRecord, } from './schemas/index.js';
export { RequestSchemas, ResponseSchemas };
type RequestSchemaName = 'plan' | 'simulate' | 'inspect' | 'quantify' | 'deploy' | 'export' | 'diligence' | 'manifests' | 'plans' | 'testBench' | 'observatory' | 'shield' | 'sentinel' | 'memoryGraph' | 'latencyLens' | 'forge' | 'edgeAgent' | 'autoOptimizer' | 'incidentManager' | 'orchestrator' | 'costops' | 'governanceDashboard' | 'policyEngine' | 'registry' | 'marketplace' | 'analyticsHub' | 'configManager' | 'schemaRegistry' | 'connectorHub' | 'copilot' | 'simulator_' | 'benchmarkExchange' | 'inferenceGateway' | 'dataVault' | 'researchLab' | 'platformAgents';
type ResponseSchemaName = 'base' | 'manifest' | 'plan' | 'simulation' | 'simulationOutput' | 'roiReport' | 'intent' | 'export' | 'diligencePackage' | 'agentInvocation';
export declare class ContractValidationError extends CLIError {
    readonly validationErrors: object[];
    constructor(options: {
        type: 'request' | 'response';
        schemaName: string;
        errors: object[];
        data?: unknown;
        correlationId?: string;
    });
}
/**
 * Validate a request payload against its contract schema.
 * MUST be called BEFORE any network request.
 *
 * @throws ContractValidationError if validation fails
 */
export declare function validateRequest<T>(schemaName: RequestSchemaName, data: unknown, correlationId?: string): T;
/**
 * Validate a response payload against its contract schema.
 * CRITICAL: This enforces:
 * 1. execution_metadata REQUIRED
 * 2. Multi-layer execution proof (layers_executed AND/OR execution_graph)
 *
 * @throws ContractValidationError if validation fails or execution proof missing
 */
export declare function validateResponse<T>(schemaName: ResponseSchemaName, data: unknown, correlationId?: string): T;
export type ValidationResult<T> = {
    valid: true;
    data: T;
} | {
    valid: false;
    error: ContractValidationError;
};
/**
 * Safe validation that returns a result object instead of throwing.
 * Useful for conditional handling in some scenarios.
 */
export declare function safeValidateRequest<T>(schemaName: RequestSchemaName, data: unknown, correlationId?: string): ValidationResult<T>;
export declare function safeValidateResponse<T>(schemaName: ResponseSchemaName, data: unknown, correlationId?: string): ValidationResult<T>;
//# sourceMappingURL=validator.d.ts.map