import type { AnyComponent, Component, ComponentKind, HashComponent } from './component.js'; import type { CreateDerivedKeyAeadOptions, CreateDerivedKeyCipherOptions, DeriveOptions, DerivedKeyAeadFacade, DerivedKeyCipherFacade } from './derived-key.js'; import type { AeadFacade, CreateAeadOptions } from './aead.js'; import type { CipherOperationOptions } from './operation-options.js'; import type { CreateTransformOptions } from './transform.js'; import type { Transform } from './component.js'; export interface Registry { use(component: AnyComponent): Registry; useHash(hash: HashComponent): Registry; getHash(name: string): HashComponent; has(kind: ComponentKind, name: string): boolean; get>(kind: Kind, name: string): T; list(kind?: ComponentKind): AnyComponent[]; createCipher(options: CreateTransformOptions): CipherFacade; createAead(options: CreateAeadOptions): AeadFacade; derive(options: DeriveOptions): Uint8Array; createDerivedKeyCipher(options: CreateDerivedKeyCipherOptions): DerivedKeyCipherFacade; createDerivedKeyAead(options: CreateDerivedKeyAeadOptions): DerivedKeyAeadFacade; encrypt(options: CreateTransformOptions & { plaintext: Uint8Array; }): Uint8Array; decrypt(options: CreateTransformOptions & { ciphertext: Uint8Array; }): Uint8Array; createEncryptor(options: CreateTransformOptions): Transform; createDecryptor(options: CreateTransformOptions): Transform; } export interface CipherFacade { encrypt(plaintext: Uint8Array, options?: CipherOperationOptions): Uint8Array; decrypt(ciphertext: Uint8Array, options?: CipherOperationOptions): Uint8Array; createEncryptor(options?: CipherOperationOptions): Transform; createDecryptor(options?: CipherOperationOptions): Transform; } export declare function createRegistry(components?: Iterable): Registry; //# sourceMappingURL=registry.d.ts.map