/// <reference types="node" />
/// <reference types="node" />
/**
 * Canonical **outbound** asset chunk for WebSocket JSON (push and pull).
 * Base64 string `data` keeps `JSON.parse` heap bounded vs `{ type: 'Buffer', data: [n,…] }`.
 */
export declare function createTransferAssetStreamChunk(assetID: string, chunk: Buffer | Uint8Array): {
    action: 'stream';
    assetID: string;
    encoding: 'base64';
    data: string;
};
/**
 * Decode a stream item from `TransferAssetFlow` after `JSON.parse` (shared by push + pull handlers
 * and the remote source provider).
 */
export declare function decodeTransferAssetStreamItem(item: {
    action: 'stream';
    data: unknown;
    encoding?: 'base64';
}): Buffer;
/**
 * Decode binary payload for `TransferAssetFlow` `action: 'stream'` after JSON.parse.
 *
 * Supported shapes (receivers should accept all of these):
 * - **String `data`:** preferred wire form (`createTransferAssetStreamChunk` / `encoding: 'base64'`).
 * - **`{ type: 'Buffer', data: number[] | TypedArray }`:** legacy `Buffer.toJSON()` from default
 *   `JSON.stringify` (older clients/servers).
 * - **`Buffer` instance:** in-process only.
 *
 * Note: Node’s `JSON.stringify` runs `Buffer.toJSON()` before any replacer, so nested `Buffer`
 * values become the legacy object unless you pass a string (use `createTransferAssetStreamChunk`).
 */
export declare function decodeTransferAssetStreamData(data: unknown, encoding?: 'base64'): Buffer;
/** Approximate decoded byte size for batching (pull asset generator). */
export declare function transferAssetStreamChunkByteLength(chunk: {
    action: string;
    data?: unknown;
    encoding?: 'base64';
}): number;
//# sourceMappingURL=transfer-asset-chunk.d.ts.map