import { MerkleTree } from '../../data-structures/merkle-tree';
import { Utxo } from '../../data-structures/utxo/Utxo';
import { UserKeys } from '../../data-structures/crypto-keys/keys';
import { CircomDataType, DimDataType } from '../../types/circom-data.types';
import { ethers } from 'ethers';
import { FeeStructure } from '../../types/hinkal.types';
export declare const constructEmporiumProof: <T = CircomDataType>(merkleTree: MerkleTree<bigint>, merkleTreeAccessToken: MerkleTree<bigint>, erc20TokenAddresses: string[], tokenIds: number[], inputUtxos: Utxo[][], outputUtxos: Utxo[][], userKeys: UserKeys, tokenCount: number, inputCount: number, emporiumAddress: string, operations: string[], generateProofRemotely: boolean, relay?: string, chainId?: number, onChainCreation?: boolean[], flatFees?: bigint[], subAccountPrivateKey?: string, patchAccessTokenMerkleTree?: boolean, slippageValues?: bigint[], feeStructure?: FeeStructure | undefined, hinkalHelper?: ethers.Contract, signatureData?: import('../..').SignatureData, messageSeedOverride?: bigint) => Promise<{
    zkCallData: import('../..').NewZkCallDataType;
    circomData: T;
    dimData: DimDataType;
    encryptedOutputs: string[][];
    authorizationData: import('../..').AuthorizationData | undefined;
}>;
