import type * as DatabaseDev from "@antelopejs/interface-database"; import { MixinSymbol, TwoWayModifier } from "./common"; type Options = { /** Encryption algorithm (for supported algorithms refer to {@link createCipheriv}) */ algorithm?: string; /** Encryption key. */ secretKey: string; /** Initialization Vector size. */ ivSize?: number; }; type Meta = Record; type LockedType = [ciphertext: string, iv: string, authTag?: string]; /** * Encryption modifier. enables the use of {@link Encrypted} on table fields. * * These fields are stored encrypted in the database. */ export declare class EncryptionModifier extends TwoWayModifier { readonly autolock = true; lock(_locked_value: LockedType | undefined, value: unknown): LockedType; readonly autounlock = true; unlock([locked_value, iv_str, authTag]: LockedType): unknown; unlockrequest(data: DatabaseDev.ValueProxy): DatabaseDev.ValueProxy; [MixinSymbol]: { new (): {}; }; } /** * Mark a Database Table class field as being encrypted. * * @note The Table class MUST incorporate the {@link EncryptionModifier} mixin. * * @param options Encryption options. */ export declare const Encrypted: (options: Options) => import("@antelopejs/interface-core/decorators").PropertyDecorator; export {};