import { CipherText } from './cipher-text';
import { Context } from './context';
import { Exception } from './exception';
import { PlainText, PlainTextConstructorOptions } from './plain-text';
import { Instance, LoaderOptions } from './seal';
import { SecretKey } from './secret-key';
export type DecryptorDependencyOptions = {
    readonly Exception: Exception;
    readonly PlainText: PlainTextConstructorOptions;
};
export type DecryptorDependencies = {
    ({ Exception, PlainText }: DecryptorDependencyOptions): DecryptorConstructorOptions;
};
export type DecryptorConstructorOptions = {
    (context: Context, secretKey: SecretKey): Decryptor;
};
export type Decryptor = {
    readonly instance: Instance;
    readonly unsafeInject: (instance: Instance) => void;
    readonly delete: () => void;
    readonly decrypt: (cipherText: CipherText, plainText?: PlainText) => PlainText | void;
    readonly invariantNoiseBudget: (cipherText: CipherText) => number;
};
export declare const DecryptorInit: ({ loader }: LoaderOptions) => DecryptorDependencies;
