import { UUID } from './task-common';
export interface Message {
    type: string;
    data?: any;
}
export interface Request {
    type: 'request';
    data: {
        uuid: UUID;
        msg: Message;
    };
}
export interface Response {
    type: 'response';
    data: {
        uuid: UUID;
        resp: unknown;
    };
}
export declare function newRequest(msg: Message, transferables?: [Transferable]): Request;
export declare function newResponse(uuid: UUID, resp: unknown, transferables?: [Transferable]): Response;
export interface SyncRequest {
    type: 'sync-request';
    data: {
        msg: Message;
        reqData: SyncRequestData;
    };
}
export interface SyncRequestData {
    taskId?: number;
    sizeBuffer: Int32Array;
    signalBuffer: Int32Array;
    dataBuffer: Uint8Array;
}
export declare function newSyncRequest(msg: Message, data: SyncRequestData): SyncRequest;
export declare function encodeData(data: any): Uint8Array;
export declare function decodeData(data: Uint8Array): unknown;
