import { Exception } from './exception';
import { Modulus, ModulusConstructorOptions } from './modulus';
import { LoaderOptions } from './seal';
import { Vector, VectorConstructorOptions } from './vector';
export type PlainModulusDependencyOptions = {
    readonly Exception: Exception;
    readonly Modulus: ModulusConstructorOptions;
    readonly Vector: VectorConstructorOptions;
};
export type PlainModulusDependencies = {
    ({ Exception, Modulus, Vector }: PlainModulusDependencyOptions): PlainModulusConstructorOptions;
};
export type PlainModulusConstructorOptions = {
    (): PlainModulus;
};
export type PlainModulus = {
    readonly Batching: (polyModulusDegree: number, bitSize: number) => Modulus;
    readonly BatchingVector: (polyModulusDegree: number, bitSizes: Int32Array) => Vector;
};
export declare const PlainModulusInit: ({ loader }: LoaderOptions) => PlainModulusDependencies;
