///
///
import bufio from 'bufio';
import { MessagePort, Worker as WorkerThread } from 'worker_threads';
import { Serializable } from '../../common/serializable';
import { WorkerHeader } from '../interfaces/workerHeader';
export declare const WORKER_MESSAGE_HEADER_SIZE = 9;
export declare enum WorkerMessageType {
CreateMinersFee = 0,
DecryptNotes = 2,
JobAborted = 3,
JobError = 4,
Sleep = 5,
SubmitTelemetry = 6,
VerifyTransactions = 7,
PostTransaction = 8,
BuildTransaction = 9
}
export declare abstract class WorkerMessage implements Serializable {
private static id;
jobId: number;
type: WorkerMessageType;
constructor(type: WorkerMessageType, jobId?: number);
abstract serializePayload(bw: bufio.StaticWriter | bufio.BufferWriter): void;
abstract getSize(): number;
getSharedMemoryPayload(): SharedArrayBuffer | null;
static deserializeHeader(buffer: Buffer): WorkerHeader;
/**
* Serializes the contents of this message into a `Buffer` to be sent to a
* worker.
*
* Note that the `Buffer` will be *transferred* to the destination worker.
* This means that the buffer will become inutilizable from the sending
* context once sent. For this reason, it's important that the returned
* `Buffer` does not reference any memory that will be needed later by the
* sending context. An easy way to ensure that is to create a new `Buffer`
* every time this method is called.
*
* See https://developer.mozilla.org/en-US/docs/Web/API/Worker/postMessage
* for more details on transfers.
*/
serialize(): Buffer;
post(thread: WorkerThread | MessagePort): void;
}
//# sourceMappingURL=workerMessage.d.ts.map