/// import type { OutputFormat, Output, StrictUint8Array } from './types' export type AesMode = 'CBC' | 'CTR' | 'GCM' export type CipherUsage = 'encrypt' | 'decrypt' export interface CipherOptions { data: StrictUint8Array nonce: StrictUint8Array format?: F additionalData?: StrictUint8Array } export interface AesCipher { encrypt(options: CipherOptions): Promise> decrypt(options: CipherOptions): Promise> } export function aes(mode: AesMode, key: StrictUint8Array, usage?: CipherUsage): Promise export interface AesOptions { key: StrictUint8Array data: StrictUint8Array nonce: StrictUint8Array format?: F } export interface AesGCMOptions extends AesOptions { additionalData?: StrictUint8Array } export function encryptCBC( options: AesOptions ): Promise> export function decryptCBC( options: AesOptions ): Promise> export function encryptCTR( options: AesOptions ): Promise> export function decryptCTR( options: AesOptions ): Promise> export function encryptGCM( options: AesGCMOptions ): Promise> export function decryptGCM( options: AesGCMOptions ): Promise>