import { AdminTransactionType, CommitmentValidationDataType, ERC20Token, FeeStructure } from '../../types';
import { IHinkal } from './IHinkal';
import { Utxo } from '../utxo/Utxo';
import { constructAdminData } from '../../functions/pre-transaction';
type SolanaTransferPlan = {
    chainId: number;
    relay: string;
    commitmentValidationData?: CommitmentValidationDataType;
    args: {
        proofAArr: number[];
        proofBArr: number[];
        proofCArr: number[];
        publicInputsArr: number[][];
        encryptedOutputs: number[][];
        relayerFee: string;
        dimensions: {
            tokenNumber: number;
            nullifierAmount: number;
            outputAmount: number;
        };
    };
    accounts: {
        recipient: string;
        mint?: string;
    };
    adminData: ReturnType<typeof constructAdminData>;
    recipientUtxo: Utxo;
};
export declare const buildSolanaTransferPlan: (hinkal: IHinkal, erc20Tokens: ERC20Token[], amountChangesInput: bigint[], recipientAddress: string, feeToken?: string, feeStructureOverride?: FeeStructure, action?: AdminTransactionType) => Promise<SolanaTransferPlan>;
export declare const hinkalSolanaTransfer: (hinkal: IHinkal, erc20Tokens: ERC20Token[], amountChanges: bigint[], recipientAddress: string, feeToken?: string, feeStructureOverride?: FeeStructure, action?: AdminTransactionType, onlyGasEstimate?: boolean) => Promise<string>;
export {};
