///
///
import { BinaryWriter, StorageItemJSON, UInt160 } from '@neo-one/client-common-browserify';
import { Equals, Equatable } from './Equatable';
import { DeserializeWireBaseOptions, DeserializeWireOptions, SerializableJSON, SerializableWire, SerializeJSONContext, SerializeWire } from './Serializable';
import { StorageFlags } from './StorageFlags';
export interface StorageItemAdd {
readonly hash: UInt160;
readonly key: Buffer;
readonly value: Buffer;
readonly flags: StorageFlags;
}
export interface StorageItemUpdate {
readonly value: Buffer;
readonly flags: StorageFlags;
}
export interface StorageItemsKey {
readonly hash?: UInt160;
readonly prefix?: Buffer;
}
export interface StorageItemKey {
readonly hash: UInt160;
readonly key: Buffer;
}
export declare class StorageItem implements SerializableWire, Equatable, SerializableJSON {
static deserializeWireBase({ reader }: DeserializeWireBaseOptions): StorageItem;
static deserializeWire(options: DeserializeWireOptions): StorageItem;
readonly hash: UInt160;
readonly key: Buffer;
readonly value: Buffer;
readonly flags: StorageFlags;
readonly equals: Equals;
readonly serializeWire: SerializeWire;
private readonly sizeInternal;
constructor({ hash, key, value, flags }: StorageItemAdd);
readonly size: number;
update({ value, flags }: StorageItemUpdate): StorageItem;
serializeWireBase(writer: BinaryWriter): void;
serializeJSON(_context: SerializeJSONContext): StorageItemJSON;
}