import { Utxo } from '../../data-structures/utxo/Utxo';
import { MerkleTree } from '../../data-structures/merkle-tree';
import { CircomDataJsonType, CircomDataType, HookDataType, StealthAddressStructure } from '../../types/circom-data.types';
import { ExternalActionId } from '../../types/external-action.types';
import { FeeStructure } from '../../types/hinkal.types';
import { SignatureData } from '../../types/crypto.types';
export declare const getUtxoCircuitH0Coords: (utxo: Utxo) => [bigint, bigint];
export declare const getUtxoCircuitInRandomization: (utxo: Utxo) => string;
export declare const buildInNullifiers: (inputUtxos: Utxo[][], onChainCreation: boolean[]) => string[][];
export declare const buildOutCommitments: (outputUtxos: Utxo[][]) => string[][];
export declare const calcAmountChanges: (inputUtxos: Utxo[][], outputUtxos: Utxo[][], forCircomData?: boolean) => bigint[];
export declare const getSlippageValues: (amountChanges: bigint[]) => bigint[];
export declare const calcEncryptedOutputs: (outputUtxos: Utxo[][]) => string[][];
export declare const calcCommitmentsSiblingAndSides: (inputUtxos: Utxo[][], merkleTree: MerkleTree<bigint>) => {
    inCommitmentSiblings: string[][][];
    inCommitmentSiblingSides: string[][][];
};
export declare const serializeCircomData: (circomData: CircomDataType) => CircomDataJsonType;
export declare const deserializeCircomData: (circomData: CircomDataJsonType) => CircomDataType;
export declare const createCallDataHash: (publicSignalCount: number, relay: string, externalAddress: string | undefined, externalActionId: bigint | ExternalActionId, externalActionMetadata: string, encryptedOutputs: string[][], hookData: HookDataType | undefined, slippageValues: bigint[], onChainCreation: boolean[], feeStructure: FeeStructure, signatureData: SignatureData, _originalSender?: string) => bigint;
export declare const calcPublicSignalCount: (verifierName: string, erc20TokenAddresses: string[], amountChanges: bigint[], inNullifiers: string[][], outCommitments: string[][]) => number;
export declare const calcStealthAddressStructure: (extraRandomization: bigint, nullifyingPrivateKey: string, spendingPublicKey: bigint[]) => StealthAddressStructure;
export declare const getZkProofVerifierName: (inputUtxos: Utxo[][], outputUtxos: Utxo[][]) => string;
