/**
 * Inference Validator - Inference Scope Enforcement
 *
 * Controls what an agent can derive from accessed data.
 * OAuth scopes control DATA ACCESS; Inference Scope controls what can be DERIVED.
 *
 * Features:
 * - Global inference level limits
 * - Domain-specific overrides
 * - Derived knowledge retention policies
 * - PII inference controls
 *
 * @packageDocumentation
 * @module @vorion/semantic-governance/inference-validator
 */
import { VorionError } from '../common/errors.js';
import { InferenceLevel, type InferenceScope, type InferenceOperation, type InferenceOperationType, type DomainCode, type DerivedKnowledge, type InferenceValidationResult, type HandlingResult, type PIICheckResult } from './types.js';
/**
 * Error thrown when inference validation fails
 */
export declare class InferenceScopeError extends VorionError {
    code: string;
    statusCode: number;
    constructor(message: string, details?: Record<string, unknown>);
}
/**
 * Mapping of inference operation types to required levels
 */
export declare const OPERATION_LEVEL_REQUIREMENTS: Record<InferenceOperationType, InferenceLevel>;
/**
 * Inference Validator
 *
 * Validates inference operations against the configured inference scope rules.
 */
export declare class InferenceValidator {
    private readonly config;
    private readonly domainLevelCache;
    /**
     * Create a new InferenceValidator
     *
     * @param config - Inference scope configuration
     */
    constructor(config: InferenceScope);
    /**
     * Check if an inference operation is allowed
     *
     * @param operation - The inference operation to validate
     * @returns Validation result
     */
    validateInference(operation: InferenceOperation): InferenceValidationResult;
    /**
     * Get the effective inference level for a domain
     *
     * @param domain - Domain code
     * @returns Effective inference level
     */
    getEffectiveLevel(domain: DomainCode): InferenceLevel;
    /**
     * Handle derived knowledge according to policy
     *
     * @param knowledge - The derived knowledge to handle
     * @returns Handling result
     */
    handleDerivedKnowledge(knowledge: DerivedKnowledge): HandlingResult;
    /**
     * Check data for PII inference
     *
     * @param data - Data to check
     * @returns PII check result
     */
    checkPIIInference(data: unknown): PIICheckResult;
    /**
     * Get the required inference level for an operation type
     *
     * @param operationType - The operation type
     * @returns Required inference level
     */
    getRequiredLevel(operationType: InferenceOperationType): InferenceLevel;
    /**
     * Check if a recipient is allowed to receive derived knowledge
     *
     * @param recipientId - Recipient identifier (DID or URL)
     * @returns Whether the recipient is allowed
     */
    isRecipientAllowed(recipientId: string): boolean;
    /**
     * Validate a batch of inference operations
     *
     * @param operations - Array of operations to validate
     * @returns Array of validation results
     */
    validateBatch(operations: InferenceOperation[]): InferenceValidationResult[];
    /**
     * Check if any operations in a batch would fail
     *
     * @param operations - Array of operations to check
     * @returns True if all operations are allowed
     */
    allOperationsAllowed(operations: InferenceOperation[]): boolean;
}
/**
 * Create an InferenceValidator with default configuration
 *
 * @param globalLevel - Global inference level limit
 * @returns InferenceValidator with secure defaults
 */
export declare function createDefaultInferenceValidator(globalLevel?: InferenceLevel): InferenceValidator;
/**
 * Create a restrictive InferenceValidator for sensitive operations
 *
 * @returns InferenceValidator with minimal inference allowed
 */
export declare function createRestrictiveInferenceValidator(): InferenceValidator;
//# sourceMappingURL=inference-validator.d.ts.map