import { Exception } from './exception';
import { LoaderOptions } from './seal';
import { SecurityLevel } from './security-level';
import { Vector, VectorConstructorOptions } from './vector';
export type CoeffModulusDependencyOptions = {
    readonly Exception: Exception;
    readonly SecurityLevel: SecurityLevel;
    readonly Vector: VectorConstructorOptions;
};
export type CoeffModulusDependencies = {
    ({ Exception, SecurityLevel, Vector }: CoeffModulusDependencyOptions): CoeffModulusConstructorOptions;
};
export type CoeffModulusConstructorOptions = {
    (): CoeffModulus;
};
export type CoeffModulus = {
    readonly MaxBitCount: (polyModulusDegree: number, securityLevel?: SecurityLevel) => number;
    readonly BFVDefault: (polyModulusDegree: number, securityLevel?: SecurityLevel) => Vector;
    readonly Create: (polyModulusDegree: number, bitSizes: Int32Array) => Vector;
};
export declare const CoeffModulusInit: ({ loader }: LoaderOptions) => CoeffModulusDependencies;
