import { Buffer } from 'node:buffer';
import { Ed25519KeyIdentity } from '@dfinity/identity';
import { Secp256k1KeyIdentity } from '@dfinity/identity-secp256k1';
/**
 * Creates an identity from the raw string content of a PEM file.
 * This is the primary function for creating an identity. It supports
 * encrypted and unencrypted PEMs of both Ed25519 and Secp256k1 types.
 *
 * @param pemContent The string content of the PEM file.
 * @param password An optional password to decrypt the PEM file.
 * @returns An Ed25519KeyIdentity or Secp256k1KeyIdentity.
 */
export declare function identityFromPemContent(pemContent: string, password?: string): Ed25519KeyIdentity | Secp256k1KeyIdentity;
/**
 * Creates an identity by reading a PEM file from the local filesystem.
 * This is a convenience wrapper around `identityFromPemContent`.
 *
 * @param path The file path to the PEM file.
 * @param password An optional password to decrypt the PEM file.
 * @returns An Ed25519KeyIdentity or Secp256k1KeyIdentity.
 */
export declare function identityFromPem(path: string, password?: string): Ed25519KeyIdentity | Secp256k1KeyIdentity;
/**
 * Encrypts a buffer using AES-256-CTR with a password-derived key.
 * The initialization vector (IV) is prepended to the resulting buffer.
 * This is a utility function and not typically called directly by consumers of the SDK.
 *
 * @param buffer The buffer to encrypt.
 * @param password The password to use for encryption.
 * @returns The encrypted buffer, prefixed with the 16-byte IV.
 */
export declare function encrypt(buffer: Buffer, password: string): Buffer;
