import { ConfigService } from '@nestjs/config';
import { KeyProvider } from '../providers/key-provider';
export declare class CryptoService {
    private readonly provider;
    private readonly configService;
    constructor(provider: KeyProvider, configService: ConfigService);
    ready(): Promise<import("../providers/key-provider").KeyResult>;
    boxRaw(message: Buffer, key: Buffer): Promise<Buffer>;
    unboxRaw(encryptedMessage: Buffer, key: Buffer): Promise<Buffer>;
    deriveSession(clientPublicKey: Buffer, ts: number): Promise<{
        rx: Buffer<ArrayBuffer>;
        tx: Buffer<ArrayBuffer>;
        kid: string;
        ts: number;
    }>;
    getCurrentKey(): Promise<import("../providers/key-provider").KeyResult>;
    getKey(kid: string): Promise<Buffer<ArrayBufferLike> | null>;
    encryptAesGcm(message: Buffer, key: Buffer): Promise<Buffer>;
    decryptAesGcm(encryptedMessage: Buffer, key: Buffer): Promise<Buffer>;
    encryptKyber(message: Buffer): Promise<{
        ciphertext: Buffer;
        encapsulatedKey: Buffer;
    }>;
    decryptKyber(ciphertext: Buffer, encapsulatedKey: Buffer, privateKey: Buffer): Promise<Buffer>;
    batchEncrypt(messages: Buffer[], key: Buffer): Promise<Buffer[]>;
    batchDecrypt(encryptedMessages: Buffer[], key: Buffer): Promise<Buffer[]>;
}
