import { ec as EC } from "elliptic";
import { Bytes, BytesType } from "./Bytes.js";
import { Checksum256Type } from "./Checksum.js";
import { Checksum512 } from "./Checksum.js";
import { KeyType } from "./KeyType.js";
import { PublicKey } from "./PublicKey.js";
import { Signature } from "./Signature.js";
export type PrivateKeyType = PrivateKey | string;
export declare class PrivateKey {
    readonly blsDataBE: Bytes | null;
    type: KeyType;
    data: Bytes;
    /** Create PrivateKey object from representing types. */
    static from(value: PrivateKeyType): PrivateKey;
    /**
     * Create PrivateKey object from a string representation.
     * Accepts WIF (5...) and Antelope/SYSIO (PVT_...) style private keys.
     */
    static fromString(string: string, ignoreChecksumError?: boolean): PrivateKey;
    /**
     * Create PrivateKey object from elliptic key pair.
     * @param privKey - Elliptic key pair.
     * @param keyType - Key type.
     * @param ec - Elliptic curve.
     * @returns PrivateKey object.
     */
    static fromElliptic(privKey: EC.KeyPair, keyType: KeyType, ec?: EC): PrivateKey;
    /**
     * Create PrivateKey object from mnemonic phrase.
     * @param phrase - Mnemonic phrase.
     * @returns PrivateKey object.
     */
    static fromMnemonic(phrase: Array<string> | string): {
        username: string;
        address: string;
        private_key: PrivateKey;
    };
    /**
     * Generate new PrivateKey.
     */
    static generate(type: KeyType): PrivateKey;
    /**
     * Regenerate PrivateKey from seed.
     *
     * @param type - Key type.
     * @param seed - Key data.
     */
    static regenerate(type: KeyType, seed: Bytes | ArrayLike<number>): PrivateKey;
    /** @internal */
    constructor(type: KeyType, data: Bytes, blsDataBE?: Bytes | null);
    get proofOfPossessionData(): Uint8Array;
    get proofOfPossessionString(): string;
    get proofOfPossessionSignature(): Signature;
    /**
     * Sign a raw message or its digest.
     * ED25519: signs the raw message.
     * ECDSA (K1/R1/EM): signs the SHA256 digest.
     */
    signMessage(message: BytesType): Signature;
    /** @internal */
    signDigest(digest: Checksum256Type): Signature;
    /**
     * Derive the shared secret between this private key and given public key.
     */
    sharedSecret(publicKey: PublicKey): Checksum512;
    /**
     * Get the corresponding public key.
     */
    toPublic(): PublicKey;
    /**
     * Return WIF representation of this private key.
     */
    toWif(): string;
    toElliptic(): EC.KeyPair;
    /**
     * Return the key in Antelope/SYSIO PVT_<type>_<base58check> format.
     */
    toString(): string;
    /**
     * Return the private key in the native format expected by the
     * signature_provider_manager_plugin's KEY: spec.
     *
     * - K1/R1: WIF string
     * - EM (Ethereum): hex string (0x-prefixed)
     * - ED (Solana): raw base58 of the 64-byte secret key
     * - BLS: PVT_BLS_... encoded string
     */
    toNativeString(): string;
    toJSON(): string;
}
//# sourceMappingURL=PrivateKey.d.ts.map