/**
 * HKDF-based key derivation for the Vana Data Portability Protocol.
 *
 * @remarks
 * Ported verbatim from `personal-server-ts` (`packages/core/src/keys/derive.ts`)
 * to keep wire compatibility with the locked DPv1 encryption scheme. The wallet
 * signature over `"vana-master-key-v1"` IS the master key material (spec §2.3),
 * and per-scope keys are derived via HKDF-SHA256 with `salt="vana"` and
 * `info="scope:{scope}"`.
 *
 * @category Cryptography
 */
/**
 * Canonical message signed by the user's wallet to derive the master key.
 *
 * @remarks
 * NOTE: kept in sync with personal-server-ts. The Vana team's encryption design
 * doc references `"vana-master-encryption-v1"`; this implementation uses the
 * shipping value to preserve wire compatibility.
 */
export declare const MASTER_KEY_MESSAGE = "vana-master-key-v1";
/**
 * Extracts master key material from an EIP-191 signature over the master key
 * message. The raw 65 signature bytes ARE the master key material.
 *
 * @param signature - 0x-prefixed hex string (65 bytes = 130 hex chars + 0x).
 * @returns 65-byte Uint8Array containing the raw signature bytes.
 */
export declare function deriveMasterKey(signature: `0x${string}`): Uint8Array;
/**
 * Recovers the server owner address from a master key signature using EIP-191
 * recovery over {@link MASTER_KEY_MESSAGE}.
 */
export declare function recoverServerOwner(masterKeySignature: `0x${string}`): Promise<`0x${string}`>;
/**
 * Derives a scope-specific 32-byte key via HKDF-SHA256.
 *
 * @remarks
 * Uses `salt="vana"` and `info="scope:{scope}"` per spec §2.3.
 *
 * @param masterKey - 65-byte master key material from {@link deriveMasterKey}.
 * @param scope - Scope identifier (e.g. `"instagram.profile"`).
 * @returns 32-byte derived key suitable for symmetric encryption.
 */
export declare function deriveScopeKey(masterKey: Uint8Array, scope: string): Uint8Array;
