///
import * as crypto from 'crypto';
import { ACCESS, Key } from './basic';
import { PublicKey } from './public';
import { CryptoCipher, CipherMode, Signatures, KeySize, CryptoECCurve } from './types';
export declare class PrivateKey extends Key {
#private;
constructor(access: typeof ACCESS, key: crypto.KeyObject, pub?: crypto.KeyObject);
get algorithm(): string | undefined;
get public(): PublicKey;
fingerprint(): Promise;
pem(type?: 'pkcs1' | 'pkcs8' | 'sec1', passcode?: string | Uint8Array, algorithm?: CryptoCipher, mode?: CipherMode): string;
der(type?: 'pkcs1' | 'pkcs8' | 'sec1', passcode?: string | Uint8Array, algorithm?: CryptoCipher, mode?: CipherMode): Uint8Array;
encrypt(data: Uint8Array): Uint8Array;
decrypt(data: Uint8Array): Uint8Array;
decipher(input: Iterable | AsyncIterable): Promise>;
sign(data: Uint8Array | Iterable | AsyncIterable, algorithm?: Signatures): Promise;
static fromPEM(key: string, passcode?: string | Uint8Array): PrivateKey;
static fromDER(key: Uint8Array, passcode?: string | Uint8Array | undefined, type?: 'pkcs1' | 'pkcs8' | 'sec1'): PrivateKey;
static createRSA(keysize?: KeySize, options?: crypto.RSAKeyPairKeyObjectOptions): Promise;
static createDSA(keysize?: KeySize, options?: crypto.DSAKeyPairKeyObjectOptions): Promise;
static createEC(curve: CryptoECCurve, options?: crypto.ECKeyPairKeyObjectOptions): Promise;
static createED25519(): Promise;
static createED448(): Promise;
static createX25519(): Promise;
static get curves(): CryptoECCurve[];
}