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

interface IDBIS_EIP712Helper {
    function hashAddressArray(address[] calldata arr) external pure returns (bytes32);
    function hashUint256Array(uint256[] calldata arr) external pure returns (bytes32);
    function getMintAuthStructHash(
        bytes32 typeHash,
        bytes32 messageId,
        bytes32 isoType,
        bytes32 isoHash,
        bytes32 accountingRef,
        uint8 fundsStatus,
        bytes32 corridor,
        uint8 assetClass,
        bytes32 recipientsHash,
        bytes32 amountsHash,
        uint64 notBefore,
        uint64 expiresAt,
        uint256 chainId,
        address verifyingContract
    ) external pure returns (bytes32);
    function getDigest(bytes32 domainSeparator, bytes32 structHash) external pure returns (bytes32);
    function recover(bytes32 digest, bytes calldata signature) external pure returns (address);
    function recoverSigners(bytes32 digest, bytes[] calldata signatures) external pure returns (address[] memory signers);
    function getSwapAuthDigest(
        bytes32 domainSeparator,
        bytes32 typeHash,
        bytes32 messageId,
        bytes32 lpaId,
        bytes32 venue,
        address tokenIn,
        address tokenOut,
        uint256 amountIn,
        uint256 minAmountOut,
        uint256 deadline,
        bytes32 quoteHash,
        address quoteIssuer,
        uint256 chainId,
        address verifyingContract
    ) external pure returns (bytes32);
}
