/** Permanent wallet-signed association between spend and view public keys. */ export declare const DERIVED_KEY_BINDING_DOMAIN = "Veilo derived key registration v1"; export interface DerivedKeyBinding { walletPublicKey: string; username: string; notePublicKey: string; viewPublicKey: string; viewKeyVersion: "view-v1"; viewAccountIndex: number; viewKeyEpoch: number; cipherVersion: "view-v2"; keyBindingMessage: string; /** Detached Ed25519 signature encoded as base64. */ keyBindingSignature: string; } /** * Verify the registry cannot substitute either public key. * * The final challenge line is deliberately retained in the stored message: it * made the original registration proof single-use. Everything before it is * reconstructed from the returned account, so a relayer cannot mix fields from * different bindings while preserving a valid wallet signature. */ export declare function verifyDerivedKeyBinding(binding: DerivedKeyBinding): boolean;