node-seal
Version:
Homomorphic Encryption for TypeScript or JavaScript using Microsoft SEAL
29 lines (28 loc) • 1.34 kB
TypeScript
import { Context } from './context';
import { Exception } from './exception';
import { MemoryPoolHandle } from './memory-pool-handle';
import { PlainText, PlainTextConstructorOptions } from './plain-text';
import { Instance, LoaderOptions } from './seal';
import { VectorConstructorOptions } from './vector';
export interface CKKSEncoderDependencyOptions {
readonly Exception: Exception;
readonly MemoryPoolHandle: MemoryPoolHandle;
readonly PlainText: PlainTextConstructorOptions;
readonly Vector: VectorConstructorOptions;
}
export interface CKKSEncoderDependencies {
({ Exception, MemoryPoolHandle, PlainText, Vector }: CKKSEncoderDependencyOptions): CKKSEncoderConstructorOptions;
}
export interface CKKSEncoderConstructorOptions {
(context: Context): CKKSEncoder;
}
export type CKKSEncoderTypes = Float64Array;
export interface CKKSEncoder {
readonly instance: Instance;
readonly unsafeInject: (instance: Instance) => void;
readonly delete: () => void;
readonly encode: (array: CKKSEncoderTypes, scale: number, plainText?: PlainText, pool?: MemoryPoolHandle) => PlainText | void;
readonly decode: (plainText: PlainText, pool?: MemoryPoolHandle) => CKKSEncoderTypes;
readonly slotCount: number;
}
export declare const CKKSEncoderInit: ({ loader }: LoaderOptions) => CKKSEncoderDependencies;