node-seal
Version:
Homomorphic Encryption for TypeScript or JavaScript using Microsoft SEAL
51 lines (50 loc) • 2.21 kB
TypeScript
import { ComprModeType } from './compr-mode-type';
import { Context } from './context';
import { Exception } from './exception';
import { MemoryPoolHandle } from './memory-pool-handle';
import { ParmsIdType, ParmsIdTypeConstructorOptions } from './parms-id-type';
import { Instance, LoaderOptions } from './seal';
import { VectorConstructorOptions } from './vector';
export interface PlainTextDependencyOptions {
readonly Exception: Exception;
readonly ComprModeType: ComprModeType;
readonly ParmsIdType: ParmsIdTypeConstructorOptions;
readonly MemoryPoolHandle: MemoryPoolHandle;
readonly Vector: VectorConstructorOptions;
}
export interface PlainTextConstructorParams {
capacity?: number;
coeffCount?: number;
pool?: MemoryPoolHandle;
}
export type PlainTextDependencies = (deps: PlainTextDependencyOptions) => PlainTextConstructorOptions;
export type PlainTextConstructorOptions = (params?: PlainTextConstructorParams) => PlainText;
export interface PlainText {
readonly instance: Instance;
readonly unsafeInject: (instance: Instance) => void;
readonly delete: () => void;
readonly reserve: (capacity: number) => void;
readonly shrinkToFit: () => void;
readonly release: () => void;
readonly resize: (coeffCount: number) => void;
readonly setZero: () => void;
readonly isZero: boolean;
readonly capacity: number;
readonly coeffCount: number;
readonly significantCoeffCount: number;
readonly nonzeroCoeffCount: number;
readonly toPolynomial: () => string;
readonly isNttForm: boolean;
readonly parmsId: ParmsIdType;
readonly scale: number;
readonly setScale: (scale: number) => void;
readonly pool: MemoryPoolHandle;
readonly save: (compression?: ComprModeType) => string;
readonly saveArray: (compression?: ComprModeType) => Uint8Array;
readonly load: (context: Context, encoded: string) => void;
readonly loadArray: (context: Context, array: Uint8Array) => void;
readonly copy: (plain: PlainText) => void;
readonly clone: () => PlainText;
readonly move: (plain: PlainText) => void;
}
export declare const PlainTextInit: ({ loader }: LoaderOptions) => PlainTextDependencies;