/**
 * Response Mode Port - Handles different response modes for VQP queries
 */
import { VQPQuery, ResponseModeType, ConsentProof, MutualVerificationProof, ObfuscationDetails } from '../types.js';
export interface QueryEvaluation {
    booleanResult: boolean;
    actualValue: any;
    timestamp: string;
    metadata?: Record<string, any>;
}
export interface ConsentRequest {
    query: object;
    justification?: string;
    requestedValue: any;
    requester: string;
    timestamp: string;
}
export interface ResponseModePort {
    processResponseMode(query: VQPQuery, evaluation: QueryEvaluation): Promise<{
        mode: ResponseModeType;
        result: boolean | number | string | null;
        value?: any;
        consentProof?: ConsentProof;
        mutualProof?: MutualVerificationProof;
        obfuscationApplied?: ObfuscationDetails;
    }>;
}
export interface ConsentPort {
    requestConsent(request: ConsentRequest): Promise<ConsentProof>;
}
export interface ObfuscationPort {
    applyObfuscation(value: any, method: 'range' | 'noise' | 'rounding', config: any): Promise<{
        obfuscatedValue: any;
        details: ObfuscationDetails;
    }>;
}
export interface MutualVerificationPort {
    verifyRequesterClaims(requesterProof: any, requiredClaims: string[]): Promise<MutualVerificationProof>;
}
//# sourceMappingURL=response-mode.d.ts.map