import { HinkalInstruction } from '../pre-transaction';
import { Utxo } from '../../data-structures/utxo/Utxo';
import { AccountMeta } from '@solana/web3.js';
import { DimDataType } from '../../types/circom-data.types';
import { MerkleTree } from '../../data-structures/merkle-tree';
import { UserKeys } from '../../data-structures/crypto-keys/keys';
import { Program } from '@coral-xyz/anchor';
export declare const constructSolanaZkProof: (generateProofRemotely: boolean, originalDeployer: string, merkleTreeHinkal: MerkleTree<bigint>, merkleTreeAccessToken: MerkleTree<bigint>, userKeys: UserKeys, hinkalProgram: Program, mintAddresses: string[], inputUtxosArray: Utxo[][], outputUtxosArray: Utxo[][], extraRandomization: bigint, relayerFee: bigint, variableRate: bigint, recipientAddress: string, signerAddress: string, dimensions: DimDataType, encryptedOutputs: number[][], chainId?: number, patchAccessTokenMerkleTree?: boolean, swapperAccountSalt?: bigint, instructions?: HinkalInstruction[], remainingAccounts?: AccountMeta[]) => Promise<{
    proofAArr: number[];
    proofBArr: number[];
    proofCArr: number[];
    publicInputsArr: number[][];
}>;
