import { $ } from '../../../../../Class/$';
import { Done } from '../../../../../Class/Functional/Done';
import { Holder } from '../../../../../Class/Holder';
import { System } from '../../../../../system';
import { Dict } from '../../../../../types/Dict';
import { CK } from '../../../../../types/interface/CK';
import { J } from '../../../../../types/interface/J';
export type I = {
    algorithm: J<{
        name: string;
    } & Dict<any>> & $;
    extractable: boolean;
    keyUsages: string[];
};
export type O = {
    public: CK;
    private: CK;
};
export default class GenerateKeyPair extends Holder<I, O> {
    constructor(system: System);
    f({ algorithm, extractable, keyUsages }: I, done: Done<O>): Promise<void>;
}
