import CryptoFactory from "../plugin/CryptoFactory";
import PrivateKey from "./PrivateKey";
/**
 * Class to model pairwise keys
 */
export default class PairwiseKey {
    /**
     * Get or set the crypto factory to use, containing the crypto suite and the key store.
     */
    private cryptoFactory;
    private masterKeys;
    /**
     * Create an instance of @class PairwiseKey.
     * @param cryptoFactory The crypto factory object.
     */
    constructor(cryptoFactory: CryptoFactory);
    /**
     * Generate a pairwise key for the specified algorithms
     * @param algorithm for the key
     * @param seedReference Reference to the seed
     * @param personaId Id for the persona
     * @param peerId Id for the peer
     */
    generatePairwiseKey(algorithm: EcKeyGenParams | RsaHashedKeyGenParams, seedReference: string, personaId: string, peerId: string): Promise<PrivateKey>;
    /**
     * Generate a pairwise master key.
     * @param seedReference  The master seed for generating pairwise keys
     * @param personaId  The owner DID
     */
    private generatePersonaMasterKey;
}
