// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;

/**
 * @title IZkReserveProofVerifier
 * @notice Optional hook for zk-SNARK verification that R >= f(S0) with private bank balances.
 * @dev Deploy a verifier implementation and call from an extended ReserveCommitmentStore or wrapper.
 */
interface IZkReserveProofVerifier {
    /// @notice Returns true if the proof is valid for the given public inputs (e.g. commitment_R, lineId hash).
    function verifyProof(bytes calldata proof, uint256[] calldata publicInputs) external view returns (bool valid);
}
