///
import { DecryptStream, DecryptResult } from './encryption/index.js';
import { VerifyStream, VerifyResult, VerifyDetachedResult } from './signing/index.js';
import { DesigncryptStream, DesigncryptResult } from './signcryption/index.js';
import { SymmetricKeyRecipient } from './signcryption/recipient.js';
import { DearmorStream, Options as ArmorOptions, ArmorHeaderInfo, DearmorResult } from './armor.js';
import tweetnacl from 'tweetnacl';
import Pumpify from 'pumpify';
export declare function encryptAndArmor(data: Uint8Array | string, keypair: tweetnacl.BoxKeyPair | null, recipients_keys: Uint8Array[]): Promise;
export declare function dearmorAndDecrypt(encrypted: string, keypair: tweetnacl.BoxKeyPair, sender?: Uint8Array | null): Promise;
export type DearmorAndDecryptResult = DearmorResult & DecryptResult;
export declare class EncryptAndArmorStream extends Pumpify {
constructor(keypair: tweetnacl.BoxKeyPair | null, recipients_keys: Uint8Array[], armor_options?: Partial);
}
export declare class DearmorAndDecryptStream extends Pumpify {
readonly dearmor: DearmorStream;
readonly decrypt: DecryptStream;
constructor(keypair: tweetnacl.BoxKeyPair, sender?: Uint8Array | null, armor_options?: Partial);
get info(): ArmorHeaderInfo;
get sender_public_key(): Uint8Array;
}
export declare function signAndArmor(data: Uint8Array | string, keypair: tweetnacl.SignKeyPair): Promise;
export declare function verifyArmored(signed: string, public_key?: Uint8Array | null): Promise;
export type DearmorAndVerifyResult = DearmorResult & VerifyResult;
export declare class SignAndArmorStream extends Pumpify {
constructor(keypair: tweetnacl.SignKeyPair, armor_options?: Partial);
}
export declare class DearmorAndVerifyStream extends Pumpify {
readonly dearmor: DearmorStream;
readonly verify: VerifyStream;
constructor(public_key?: Uint8Array | null, armor_options?: Partial);
get info(): ArmorHeaderInfo;
get public_key(): Uint8Array;
}
export declare function signDetachedAndArmor(data: Uint8Array | string, keypair: tweetnacl.SignKeyPair): Promise;
export declare function verifyDetachedArmored(signature: string, data: Uint8Array | string, public_key?: Uint8Array | null): Promise;
export interface DearmorAndVerifyDetachedResult extends VerifyDetachedResult {
remaining: Buffer;
header_info: ArmorHeaderInfo;
}
export declare function signcryptAndArmor(data: Uint8Array | string, keypair: tweetnacl.SignKeyPair | null, recipients_keys: Uint8Array[]): Promise;
export declare function dearmorAndDesigncrypt(signcrypted: string, keypair: tweetnacl.BoxKeyPair, sender?: Uint8Array | null): Promise;
export type DearmorAndDesigncryptResult = DearmorResult & DesigncryptResult;
export declare class SigncryptAndArmorStream extends Pumpify {
constructor(keypair: tweetnacl.SignKeyPair | null, recipients_keys: (Uint8Array | SymmetricKeyRecipient)[], armor_options?: Partial);
}
export declare class DearmorAndDesigncryptStream extends Pumpify {
readonly dearmor: DearmorStream;
readonly decrypt: DesigncryptStream;
constructor(keys: tweetnacl.BoxKeyPair | SymmetricKeyRecipient, armor_options?: Partial);
get info(): ArmorHeaderInfo;
get sender_public_key(): Uint8Array | null;
}