import { $ } from '../../../../../Class/$';
import { Done } from '../../../../../Class/Functional/Done';
import { Fail } from '../../../../../Class/Functional/Fail';
import { Holder } from '../../../../../Class/Holder';
import { System } from '../../../../../system';
import { AB } from '../../../../../types/interface/AB';
import { CK } from '../../../../../types/interface/CK';
import { J } from '../../../../../types/interface/J';
export type I = {
    key: CK & $;
    algorithm: J<any> & $;
    data: AB & $;
    opt: {};
};
export type O = {
    data: AB & $;
};
export default class Decrypt extends Holder<I, O> {
    constructor(system: System);
    f({ opt, key, algorithm, data }: I, done: Done<O>, fail: Fail): Promise<void>;
}
