import { ethers } from 'ethers';
import { CircomDataType, DimDataType } from '../../types/circom-data.types';
import { NewZkCallDataType } from '../../types/snark.types';
import { TronAccountResources, TronChainParameter } from '../../types/tron.types';
import { TronWeb } from 'tronweb';
export declare const detectTronChainIdFromHost: (fullNodeHost: string) => number;
export declare const createTronWeb: (chainId: number, privateKey?: string) => TronWeb;
export declare const evmHexToTronBase58Address: (addr: string) => string;
export declare const addressToHexFormat: (addr: string) => string;
export declare const createTronCallData: (abi: ethers.InterfaceAbi, functionName: string, args: unknown[]) => string;
export declare const getAvailableResource: (resources: TronAccountResources | undefined, limitKey: string, usedKey: string) => bigint;
export declare const getChainParameterValue: (params: TronChainParameter[], key: string) => bigint;
export declare const fetchTronChainParameters: (chainId: number) => Promise<TronChainParameter[]>;
export declare const fetchTronAccountResources: (chainId: number, ownerAddress: string) => Promise<TronAccountResources>;
export declare const estimateTronFeeSunWithPadding: (tronWeb: TronWeb, chainId: number, contractAddress: string, ownerAddress: string, callData: string, callValueSun: bigint) => Promise<bigint>;
export declare const parseZkCalldata: (zkCallData: NewZkCallDataType) => {
    a: bigint[];
    b: bigint[][];
    c: bigint[];
    publicSignals: bigint[];
};
export declare const getVerifierId: (dimensionsArg: DimDataType, externalActionId: bigint) => bigint;
export declare const generateProofSignatureRemotely: (a: bigint[], b: bigint[][], c: bigint[], input: bigint[], dimensionsArg: DimDataType, externalActionId: bigint) => Promise<{
    v: number;
    r: string;
    s: string;
}>;
export declare const circomDataToArray: (circomData: CircomDataType) => (string | number | bigint | (string | number)[] | (string | bigint)[] | string[][] | (bigint | boolean | bigint[] | import('../..').HinkalLogicAction | (string[] | bigint[])[][])[] | undefined)[];
export declare const reorderZkCallData: (isTron: boolean, zkCallData: NewZkCallDataType, dimData: DimDataType, circomData: CircomDataType, modifyZkCallData?: boolean) => Promise<{
    v: number;
    r: string;
    s: string;
} | undefined>;
