import { EncryptionParameterQualifiers, EncryptionParameterQualifiersConstructorOptions } from './encryption-parameter-qualifiers';
import { EncryptionParameters, EncryptionParametersConstructorOptions } from './encryption-parameters';
import { Exception } from './exception';
import { ParmsIdType, ParmsIdTypeConstructorOptions } from './parms-id-type';
import { Instance, LoaderOptions } from './seal';
export type ContextDataDependencyOptions = {
    readonly Exception: Exception;
    readonly EncryptionParameters: EncryptionParametersConstructorOptions;
    readonly ParmsIdType: ParmsIdTypeConstructorOptions;
    readonly EncryptionParameterQualifiers: EncryptionParameterQualifiersConstructorOptions;
};
export type ContextDataDependencies = {
    ({ Exception, EncryptionParameters, ParmsIdType, EncryptionParameterQualifiers }: ContextDataDependencyOptions): ContextDataConstructorOptions;
};
export type ContextDataConstructorOptions = {
    (): ContextData;
};
export type ContextData = {
    readonly instance: Instance;
    readonly unsafeInject: (instance: Instance) => void;
    readonly delete: () => void;
    readonly parms: EncryptionParameters;
    readonly parmsId: ParmsIdType;
    readonly qualifiers: EncryptionParameterQualifiers;
    readonly totalCoeffModulusBitCount: number;
    readonly prevContextData: ContextData;
    readonly nextContextData: ContextData;
    readonly chainIndex: number;
};
export declare const ContextDataInit: ({ loader }: LoaderOptions) => ContextDataDependencies;
