import { EncryptedOutputWithSign } from '../types/commitments.types';
import { IUtxoConstructor } from '../data-structures/utxo/Utxo';
type DecryptUtxoEnclaveCallResponse = {
    utxos: IUtxoConstructor<string>[];
    encryptedOutputs: EncryptedOutputWithSign[];
    lastOutput: string;
};
export declare const decryptUtxoEnclaveCall: (chainId: number, keyCiphertext: string, inputCiphertext: string) => Promise<DecryptUtxoEnclaveCallResponse>;
export interface StoreUtxoRequest {
    recipientEthAddress: string;
    encryptedUtxo: string;
    key: string;
    chainId: number;
}
export interface StoreUtxoResponse {
    status: 'success';
}
export declare const storeUtxoEnclaveCall: (recipientEthAddress: string, encryptedUtxo: string, key: string, chainId: number) => Promise<StoreUtxoResponse>;
export interface GetUtxosRequest {
    ethAddress: string;
    encryptedSignature: string;
    key: string;
    chainId: number;
}
export interface UtxoResponse {
    amount: string;
    erc20TokenAddress: string;
    mintAddress?: string;
    randomization: string;
    stealthAddress: string;
    timeStamp: string;
    tokenId: number;
    senderAddress: string;
    shieldedPrivateKey: string;
}
export interface GetUtxosResponse {
    utxos: UtxoResponse[];
}
export declare const getUtxosEnclaveCall: (ethAddress: string, encryptedSignature: string, key: string, chainId: number, isSolanaLedger: boolean, txMessageForSolanaLedger?: string) => Promise<GetUtxosResponse>;
export {};
