export declare enum Blockchain { BTC = "BTC", ETH = "ETH", NEO = "NEO" } /** * Secp256k1 for BTC, ETH * Secp256r1 for NEO */ export declare type Curve = 'Secp256k1' | 'Secp256r1'; export declare const BlockchainCurve: Record; export interface PallierPK { n: string; } export interface Proof { correct_key_proof: { sigma_vec: string[]; }; paillier_pk: PallierPK; } export declare type FillPoolFn = (arg: { blockchain: Blockchain; client_dh_publics: string[]; }) => Promise; export declare type GenerateProofFn = (arg: {}) => Promise; export interface ComputePresigParams { apiKey: SignKey; blockchain: Blockchain; fillPoolFn: FillPoolFn; messageHash: string; } export interface FillRPoolParams { fillPoolFn: FillPoolFn; blockchain: Blockchain; } export interface CreatePallierPKParams { generateProofFn: GenerateProofFn; } export interface SignKey { client_secret_share: string; paillier_pk: PallierPK; public_key: string; server_secret_share_encrypted: string; } export interface PublicKeyFromSecretKeyParams { secret: string; curve: Curve; } export interface CreateApiKeyParams { secret: string; curve: Curve; generateProofFn: GenerateProofFn; } export interface GenerateApiKeysParams { walletIndices: { readonly [key: string]: number; }; secret: string; net: string; generateProofFn: GenerateProofFn; } export interface Presignature { presig: string; r: string; } export declare enum BIP44 { BTC = "m/44'/0'/0'/0/0", ETH = "m/44'/60'/0'/0/0", NEO = "m/44'/888'/0'/0/0" } export interface ChildKey { client_secret_share: string; address: string; public_key: string; server_secret_share_encrypted: string; } export interface APIKey { version: number; paillier_pk: PallierPK; child_keys: Record; payload_signing_key: string; payload_public_key: string; }