///
///
import { ECPoint, UInt160 } from '@neo-one/client-common-browserify';
import { Action } from './action';
import { Asset } from './Asset';
import { Contract } from './Contract';
import { InvocationResult } from './invocationResult';
import { StorageChange } from './storageChange';
import { FeeContext, Input, InvocationTransaction, Transaction } from './transaction';
import { TransactionData } from './TransactionData';
import { BinaryReader } from './utils';
export { SerializeWire, SerializableWire, createSerializeWire } from '@neo-one/client-common-browserify';
export interface DeserializeWireContext {
readonly messageMagic: number;
}
export interface DeserializeWireBaseOptions {
readonly context: DeserializeWireContext;
readonly reader: BinaryReader;
}
export interface DeserializeWireOptions {
readonly context: DeserializeWireContext;
readonly buffer: Buffer;
}
export declare type DeserializeWireBase = (options: DeserializeWireBaseOptions) => T;
export declare type DeserializeWire = (options: DeserializeWireOptions) => T;
export declare function createDeserializeWire(deserializeWireBase: DeserializeWireBase): DeserializeWire;
export interface SerializableInvocationData {
readonly asset: Asset | undefined;
readonly contracts: readonly Contract[];
readonly deletedContractHashes: readonly UInt160[];
readonly migratedContractHashes: ReadonlyArray;
readonly voteUpdates: ReadonlyArray]>;
readonly result: InvocationResult;
readonly actions: readonly Action[];
readonly storageChanges: readonly StorageChange[];
}
export interface SerializeJSONContext {
readonly addressVersion: number;
readonly feeContext: FeeContext;
readonly tryGetInvocationData: (transaction: InvocationTransaction) => Promise;
readonly tryGetTransactionData: (transaction: Transaction) => Promise;
readonly getUnclaimed: (hash: UInt160) => Promise;
readonly getUnspent: (hash: UInt160) => Promise;
}
export declare type SerializeJSON = (context: SerializeJSONContext) => TJSON | Promise;
export interface SerializableJSON {
readonly serializeJSON: SerializeJSON;
}