/// import sodium from 'sodium-native'; export declare type EncodedPublicKey = string & { __encodedPublicKey: true; }; export declare type EncodedSecretKey = string & { __encodedSecretKey: true; }; export interface EncodedKeyPair { publicKey: EncodedPublicKey; secretKey: EncodedSecretKey; } export declare type EncodedPublicSigningKey = EncodedPublicKey & { __encodedPublicSigningKey: true; }; export declare type EncodedSecretSigningKey = EncodedSecretKey & { __encodedSecretSigningKey: true; }; export interface EncodedSigningKeyPair extends EncodedKeyPair { publicKey: EncodedPublicSigningKey; secretKey: EncodedSecretSigningKey; } export declare type EncodedPublicEncryptionKey = EncodedPublicKey & { __encodedPublicEncryptionKey: true; }; export declare type EncodedSecretEncryptionKey = EncodedSecretKey & { __encodedSecretEncryptionKey: true; }; export interface EncodedEncryptionKeyPair extends EncodedKeyPair { publicKey: EncodedPublicEncryptionKey; secretKey: EncodedSecretEncryptionKey; } export declare type EncodedSignature = string & { __encodedSignature: true; }; export declare type EncodedSealedBoxCiphertext = string & { __encodedSealedBoxCiphertext: true; }; export declare type EncodedBoxCiphertext = string & { __encodedBoxCiphertext: true; }; export declare type EncodedBoxNonce = string & { __encodedBoxNonce: true; }; export interface Box { message: EncodedBoxCiphertext; nonce: EncodedBoxNonce; } export interface SignedMessage { message: T; signature: EncodedSignature; } export declare function encodedSigningKeyPair(): EncodedSigningKeyPair; export declare function signingKeyPair(): sodium.SigningKeyPair; export declare function encodedEncryptionKeyPair(): EncodedEncryptionKeyPair; export declare function encryptionKeyPair(): sodium.EncryptionKeyPair; export declare function sign(secretKey: EncodedSecretSigningKey, message: Buffer): SignedMessage; export declare function verify(encodedPublicKey: EncodedPublicSigningKey, signedMessage: SignedMessage): boolean; export declare function sealedBox(publicKey: EncodedPublicEncryptionKey, message: Buffer): EncodedSealedBoxCiphertext; export declare function openSealedBox(keyPair: EncodedEncryptionKeyPair, sealedBox: EncodedSealedBoxCiphertext): Buffer; export declare function box(senderSecretKey: EncodedSecretEncryptionKey, recipientPublicKey: EncodedPublicEncryptionKey, message: Buffer): Box; export declare function openBox(senderPublicKey: EncodedPublicEncryptionKey, recipientSecretKey: EncodedSecretEncryptionKey, box: Box): Buffer; export declare function encode(val: sodium.PublicSigningKey): EncodedPublicSigningKey; export declare function encode(val: sodium.SecretSigningKey): EncodedSecretSigningKey; export declare function encode(val: sodium.PublicEncryptionKey): EncodedPublicEncryptionKey; export declare function encode(val: sodium.SecretEncryptionKey): EncodedSecretSigningKey; export declare function encode(val: sodium.Signature): EncodedSignature; export declare function encode(val: sodium.SealedBoxCiphertext): EncodedSealedBoxCiphertext; export declare function encode(val: sodium.BoxCiphertext): EncodedBoxCiphertext; export declare function encode(val: sodium.BoxNonce): EncodedBoxNonce; export declare function encode(val: Buffer): string; export declare function decode(val: EncodedPublicSigningKey): sodium.PublicSigningKey; export declare function decode(val: EncodedSecretSigningKey): sodium.SecretSigningKey; export declare function decode(val: EncodedPublicEncryptionKey): sodium.PublicEncryptionKey; export declare function decode(val: EncodedSecretEncryptionKey): sodium.SecretEncryptionKey; export declare function decode(val: EncodedSignature): sodium.Signature; export declare function decode(val: EncodedSealedBoxCiphertext): sodium.SealedBoxCiphertext; export declare function decode(val: EncodedBoxCiphertext): sodium.BoxCiphertext; export declare function decode(val: EncodedBoxNonce): sodium.BoxNonce; export declare function decode(val: string): Buffer; export declare function decodePair(pair: EncodedEncryptionKeyPair): sodium.EncryptionKeyPair; export declare function decodePair(pair: EncodedSigningKeyPair): sodium.SigningKeyPair; export declare function decodePair(pair: EncodedKeyPair): sodium.KeyPair; export declare function encodePair(pair: sodium.EncryptionKeyPair): EncodedEncryptionKeyPair; export declare function encodePair(pair: sodium.SigningKeyPair): EncodedSigningKeyPair; export declare function encodePair(pair: sodium.KeyPair): EncodedKeyPair;