/** * Client-Side Key Derivation * * Derives Railgun keys from a signature. * All keys stay in the browser - never sent to server. */ export interface ViewingKeyPair { privateKey: Uint8Array; pubkey: bigint[]; _originalPubkey?: Uint8Array | bigint[]; } export interface SpendingKeyPair { privateKey: Uint8Array; pubkey: bigint[]; } export interface RailgunKeys { mnemonic: string; viewingKeyPair: ViewingKeyPair; spendingKeyPair: SpendingKeyPair; nullifyingKey: bigint; masterPublicKey: bigint; } /** * Derive Railgun keys from a signature * * @param signature - Signature of B402_UNIFIED_MESSAGE ('b402 Incognito EOA Derivation') * @returns All derived keys needed for Railgun operations */ export declare function deriveRailgunKeys(signature: string): Promise; /** * Get the Railgun address (0zk...) from derived keys */ export declare function getRailgunAddress(keys: RailgunKeys): string; /** * Compute expected NPK for a given random value * This is used to verify shield commitments belong to these keys */ export declare function computeExpectedNPK(masterPublicKey: bigint, random: bigint): bigint;