import { HexInput } from '../../types/index.mjs';
import { P as PublicKey } from '../../publicKey-B3XRNhHO.mjs';
import { Signature } from './signature.mjs';
import '../../utils/apiEndpoints.mjs';
import '../../types/indexer.mjs';
import '../../types/generated/operations.mjs';
import '../../types/generated/types.mjs';
import '../../bcs/serializer.mjs';
import '../hex.mjs';
import '../common.mjs';
import '../accountAddress.mjs';
import '../../bcs/deserializer.mjs';
import '../../transactions/instances/transactionArgument.mjs';

/**
 * An abstract representation of a private key.
 * It is associated to a signature scheme and provides signing capabilities.
 */
interface PrivateKey {
    /**
     * Sign the given message with the private key.
     * @param message in HexInput format
     */
    sign(message: HexInput): Signature;
    /**
     * Derive the public key associated with the private key
     */
    publicKey(): PublicKey;
    /**
     * Get the private key in bytes (Uint8Array).
     */
    toUint8Array(): Uint8Array;
}

export type { PrivateKey };
