///
///
import EncryptedMessageHeader from './header.js';
import EncryptedMessageRecipient from './recipient.js';
import { Transform, TransformCallback } from 'stream';
import tweetnacl from 'tweetnacl';
export declare function debugSetKey(key: Buffer): void;
export declare function debugSetKeypair(keypair: tweetnacl.BoxKeyPair): void;
export declare function encrypt(data: Uint8Array | string, keypair: tweetnacl.BoxKeyPair | null, recipients_keys: Uint8Array[]): Promise;
export declare class EncryptStream extends Transform {
readonly payload_key: Buffer;
readonly ephemeral_keypair: tweetnacl.BoxKeyPair;
readonly keypair: tweetnacl.BoxKeyPair;
readonly header: EncryptedMessageHeader;
private in_buffer;
private payload_index;
private i;
constructor(keypair: tweetnacl.BoxKeyPair | null, recipients_keys: Uint8Array[]);
_transform(data: Buffer, encoding: string, callback: TransformCallback): void;
_flush(callback: TransformCallback): void;
}
export interface DecryptResult extends Buffer {
sender_public_key: Uint8Array | null;
}
export declare function decrypt(encrypted: Uint8Array, keypair: tweetnacl.BoxKeyPair, sender?: Uint8Array | null): Promise;
export declare class DecryptStream extends Transform {
readonly keypair: tweetnacl.BoxKeyPair;
readonly sender: Uint8Array | null;
private decoder;
private header_data;
private last_payload;
private payload_index;
private i;
constructor(keypair: tweetnacl.BoxKeyPair, sender?: Uint8Array | null);
get header(): EncryptedMessageHeader;
get payload_key(): Uint8Array;
get recipient(): EncryptedMessageRecipient;
get sender_public_key(): Uint8Array;
_transform(data: Buffer, encoding: string, callback: TransformCallback): void;
private _handleMessage;
_flush(callback: TransformCallback): void;
}