/**
 * Proof Generation for XMCP-I Runtime
 *
 * Handles JCS canonicalization, SHA-256 digest generation, and Ed25519 JWS signing (compact format)
 * according to requirements 5.1, 5.2, 5.3, 5.6.
 */
import { DetachedProof } from "@kya-os/contracts/proof";
import { SessionContext } from "@kya-os/contracts/handshake";
import { AgentIdentity } from "./identity";
/**
 * Tool request structure for proof generation
 */
export interface ToolRequest {
    method: string;
    params?: any;
}
/**
 * Tool response structure for proof generation
 */
export interface ToolResponse {
    data: any;
    meta?: {
        proof?: DetachedProof;
        [key: string]: any;
    };
}
/**
 * Proof generation options
 */
export interface ProofOptions {
    scopeId?: string;
    delegationRef?: string;
    clientDid?: string;
}
/**
 * Proof generator class
 */
export declare class ProofGenerator {
    private identity;
    constructor(identity: AgentIdentity);
    /**
     * Generate proof for tool request/response
     * Requirements: 5.1, 5.2, 5.3, 5.6
     */
    generateProof(request: ToolRequest, response: ToolResponse, session: SessionContext, options?: ProofOptions): Promise<DetachedProof>;
    /**
     * Generate canonical hashes for request and response
     * Requirement: 5.1
     */
    private generateCanonicalHashes;
    /**
     * Generate SHA-256 hash with JCS canonicalization
     * Requirement: 5.2
     */
    private generateSHA256Hash;
    /**
     * JCS canonicalization implementation (RFC 8785)
     */
    private canonicalizeJSON;
    /**
     * Generate Ed25519 JWS in compact format (header.payload.signature)
     * Requirement: 5.3
     *
     * Uses standard JWT claims (aud, sub, iss) in addition to custom claims
     */
    private generateJWS;
    /**
     * Format base64 private key as PKCS#8 PEM for JOSE library
     */
    private formatPrivateKeyAsPEM;
    /**
     * Verify a proof (for testing/validation)
     */
    verifyProof(proof: DetachedProof, request: ToolRequest, response: ToolResponse): Promise<boolean>;
    /**
     * Convert base64 public key to Ed25519 JWK format
     */
    private base64PublicKeyToJWK;
}
/**
 * Utility functions
 */
/**
 * Create a tool response with proof
 */
export declare function createProofResponse(request: ToolRequest, data: any, identity: AgentIdentity, session: SessionContext, options?: ProofOptions): Promise<ToolResponse>;
/**
 * Extract canonical data for hashing (utility for testing)
 */
export declare function extractCanonicalData(request: ToolRequest, response: ToolResponse): {
    request: any;
    response: any;
};
