///
import 'reflect-metadata';
import { AESKey } from './encryption-service';
import { EthereumService } from './ethereum-service';
import { BackendService } from './backend-service';
import { FileStoreInterface, FileMetadata } from './file-store-service';
export declare class KeyPacket {
readonly aesKey: AESKey;
readonly filesAddresses: Array;
constructor(aesKey: AESKey, filesAddresses: Array);
static fromJson(json: string): KeyPacket;
}
export declare class TrackingData {
readonly cmw: number;
readonly rawAmount: number;
readonly grade: number;
readonly mineLatitude: number;
readonly mineLongitude: number;
readonly materialId: string;
constructor(cmw: number, rawAmount: number, grade: number, mineLatitude: number, mineLongitude: number, materialId: string);
}
interface AESKeyInterface {
iv: {
type: string;
data: Array;
};
key: {
type: string;
data: Array;
};
}
interface DataPacketEnvelopeInterface {
packetId: string;
publicFilesKey: AESKeyInterface;
privateFilesKey: AESKeyInterface;
}
export declare class Packet {
readonly id: string;
readonly cmw: number;
readonly materialId: string;
readonly publicFilesAddresses: Array;
readonly privateFilesAddresses: Array;
readonly status: string;
constructor(id: string, cmw: number, materialId: string, publicFilesAddresses: Array, privateFilesAddresses: Array, status: string);
}
export declare class DataPacketEnvelope {
readonly packetId: string;
readonly publicFilesKey: AESKey;
readonly privateFilesKey: AESKey;
constructor(packetId: string, publicFilesKey: AESKey, privateFilesKey: AESKey);
toJson(): string;
static fromJson(rawDataPacketEnvelope: DataPacketEnvelopeInterface): DataPacketEnvelope;
}
export declare class DataPacketService {
private fileStore;
private ethereumService;
private backendService;
constructor(fileStore: FileStoreInterface, ethereumService: EthereumService, backendService: BackendService);
certifyDataPacket(trackingData: TrackingData, publicFiles: FileList | File[], privateFiles: FileList | File[]): Promise;
sellDataPacket(dataPacketEnvelope: DataPacketEnvelope, cmw: number, newOwnerAddress: string, publicFiles: FileList, privateFiles: FileList, currentOwnerPrivateKey: Buffer): Promise;
createEncryptedPacketEnvelope(packetEnvelope: DataPacketEnvelope, publicKey: Buffer): Promise;
downloadDataPacketEnvelope(dataPacketEnvelopeAddress: string, privateKey: Buffer): Promise;
getPacket(packetId: string): Promise;
getMyDataPackets(): Promise;
getDataPackets(owner: string): Promise;
uploadFiles(files: FileList | File[], aesKey?: AESKey): Promise;
downloadMetadataFiles(keyPacket: KeyPacket): Promise