import { IP2WSHAddress, RawChallenge } from '@btc-vision/transaction';
import { UTXO } from '../bitcoin/UTXOs.js';
import { BitcoinFees } from '../block/BlockGasParameters.js';
import { IAccessList } from './interfaces/IAccessList.js';
export declare enum NetworkName {
    Mainnet = "mainnet",
    Testnet = "testnet",
    OpnetTestnet = "opnetTestnet",
    Regtest = "regtest"
}
export interface OfflineCallResultData {
    readonly calldata: Uint8Array;
    readonly to: string;
    readonly contractAddress: string;
    readonly estimatedSatGas: bigint;
    readonly estimatedRefundedGasInSat: bigint;
    readonly revert?: string;
    readonly result: Uint8Array;
    readonly accessList: IAccessList;
    readonly bitcoinFees?: BitcoinFees;
    readonly network: NetworkName;
    readonly estimatedGas?: bigint;
    readonly refundedGas?: bigint;
    readonly challenge: RawChallenge;
    readonly challengeOriginalPublicKey: Uint8Array;
    readonly utxos: UTXO[];
    readonly csvAddress?: IP2WSHAddress;
}
export declare class CallResultSerializer {
    private static readonly FEE_PRECISION;
    static serialize(data: OfflineCallResultData): Uint8Array;
    static deserialize(buffer: Uint8Array): OfflineCallResultData;
    private static networkNameToU8;
    private static u8ToNetworkName;
    private static writeAccessList;
    private static readAccessList;
    private static writeBitcoinFees;
    private static readBitcoinFees;
    private static writeChallenge;
    private static readChallenge;
    private static writeUTXOs;
    private static readUTXOs;
}
