///
import { SecureRandom } from '@radixdlt/util';
import { ResultAsync } from 'neverthrow';
import { ECPointOnCurveT, PublicKeyT } from '../elliptic-curve';
export declare type MessageEncryptionInput = Readonly<{
plaintext: Buffer | string;
diffieHellmanPoint: () => ResultAsync;
secureRandom?: SecureRandom;
}>;
export declare type MessageDecryptionInput = Readonly<{
encryptedMessage: Buffer | EncryptedMessageT;
diffieHellmanPoint: () => ResultAsync;
}>;
export declare const ENCRYPTION_SCHEME_BYTES = 1;
export declare const MESSAGE_TYPE_BYTES = 1;
export declare enum MessageType {
PLAINTEXT = 0,
ENCRYPTED = 1,
HEX = 30
}
export declare enum EncryptionScheme {
NONE = 0,
DH_ADD_EPH_AESGCM256_SCRYPT_000 = 255
}
export declare type SealedMessageT = Readonly<{
ephemeralPublicKey: PublicKeyT;
nonce: Buffer;
authTag: Buffer;
ciphertext: Buffer;
combined: () => Buffer;
}>;
declare type Message = {
kind: Kind;
};
export declare type EncryptedMessageT = Message<'ENCRYPTED'> & {
encryptionScheme: EncryptionScheme;
sealedMessage: SealedMessageT;
combined: () => Buffer;
};
export declare type PlaintextMessageT = Message<'PLAINTEXT'> & {
plaintext: string;
bytes: Buffer;
};
export {};
//# sourceMappingURL=_types.d.ts.map